can someone help me with writing bean which is create dinamicly menu?
static_menu.xhtml
Code: Select all
<p:menu>
<p:menuitem value="Menu1" action="#{menuBacking.active}" update="content">
<f:setPropertyActionListener value="menu1" target="#{menuBacking.selection}"/>
</p:menuitem>
<p:menuitem value="Menu2" action="#{menuBacking.active}" update="content">
<f:setPropertyActionListener value="menu2" target="#{menuBacking.selection}"/>
</p:menuitem>
<p:menuitem value="Menu3" action="#{menuBacking.active}" update="content">
<f:setPropertyActionListener value="menu3" target="#{menuBacking.selection}"/>
</p:menuitem>
<p:menuitem value="Menu4" action="#{menuBacking.active}" update="content">
<f:setPropertyActionListener value="menu4" target="#{menuBacking.selection}"/>
</p:menuitem>
</p:menu>
Code: Select all
@ManagedBean
@SessionScoped
public class MenuBacking implements Serializable {
private MenuModel model;
public MenuModel getModel() {
return model;
}
private void MenuBacking() {
initModel();
}
private void initModel() {
model = new DefaultMenuModel();
Submenu submenu;
MenuItem item;
FacesContext facesCtx = FacesContext.getCurrentInstance();
ELContext elCtx = facesCtx.getELContext();
ExpressionFactory expFact = facesCtx.getApplication().getExpressionFactory();
while(i<5){
item = new MenuItem();
item.setId("m_"+i);
item.setValue("menu"+i);
item.setIcon("ui-icon ui-icon-document");
item.setActionExpression(expFact.createMethodExpression(elCtx, "#{menuBacking.setActiveProgram('menu'+i)}", void.class, new Class[0]));
item.setUpdate("content");
item.setUrl("#");
submenu.getChildren().add(item);
model.addSubmenu(submenu);
}
}
Code: Select all
<p:menubar model="#{menuBacking.model}" styleClass="main_menuBar" autoSubmenuDisplay="false" />
Code: Select all
<f:setPropertyActionListener value="menu1" target="#{menuBacking.selection}"/>