[英]Primefaces : how to create <p:menubar> dynamically in primefaces 4?
我正在從素面3.4遷移到素面4。我已經在素面3.4中動態創建了菜單欄,沒有問題。 這是豆子:
public MenuBean() {
MenuItem menuItem = new MenuItem();
Submenu submenu = new Submenu();
submenu.setLabel("Nos Solutions");
menuItem.setValue("Computers");
menuItem.setUrl("#");
submenu.getChildren().add(menuItem);
menuItem = new MenuItem();
menuItem.setValue("Clothes");
menuItem.setUrl("#");
submenu.getChildren().add(menuItem);
simpleMenuModel.addSubmenu(submenu);
submenu = new Submenu();
submenu.setLabel("Nos Problemes");
menuItem.setValue("Computers");
menuItem.setUrl("#");
submenu.getChildren().add(menuItem);
menuItem = new MenuItem();
menuItem.setValue("Clothes");
menuItem.setUrl("#");
submenu.getChildren().add(menuItem);
simpleMenuModel.addSubmenu(submenu);
submenu = new Submenu();
submenu.setLabel("Nos Solutions");
menuItem.setValue("Computers");
menuItem.setUrl("#");
submenu.getChildren().add(menuItem);
menuItem = new MenuItem();
menuItem.setValue("Clothes");
menuItem.setUrl("#");
submenu.getChildren().add(menuItem);
simpleMenuModel.addSubmenu(submenu);
submenu = new Submenu();
submenu.setLabel("Nos Solutions");
menuItem.setValue("Computers");
menuItem.setUrl("#");
submenu.getChildren().add(menuItem);
Submenu submenu1 = new Submenu();
submenu1.setLabel("Offres");
menuItem = new MenuItem();
menuItem.setValue("Stage Etudiants");
menuItem.setUrl("#");
submenu1.getChildren().add(menuItem);
menuItem = new MenuItem();
menuItem.setValue("Jeunes diplomés");
menuItem.setUrl("#");
submenu1.getChildren().add(menuItem);
submenu.getChildren().add(submenu1);
menuItem = new MenuItem();
menuItem.setValue("Clothes");
menuItem.setUrl("#");
submenu.getChildren().add(menuItem);
simpleMenuModel.addSubmenu(submenu);
menuItem = new MenuItem();
menuItem.setValue("Clothe");
menuItem.setUrl("#");
simpleMenuModel.addMenuItem(menuItem);
}
public MenuModel getSimpleMenuModel() {
return simpleMenuModel;
}
這是xhtml: <p:menubar model="#{menuBean.simpleMenuModel}"/>
現在在primefaces 4中,類/接口似乎已更改,我不知道在此版本中要這樣做。 誰能幫忙!
請看一下頁面:
簡單的例子:
MenuModel model = new DefaultMenuModel();
DefaultSubMenu subMenu = new DefaultSubMenu("some submenu");
DefaultMenuItem menuItem = new DefaultMenuItem("some item");
subMenu.addElement(menuItem);
model.addElement(subMenu);
model.generateUniqueIds();
方法generateUniqueIds()
將使您避免自己創建和設置ID字符串。
我個人在primeface 4.0上像這樣動態創建菜單:
豆角,扁豆:
private MenuModel menumodel = new DefaultMenuModel();
//create the first menu item
DefaultMenuItem accueil = new DefaultMenuItem("Accueil");
accueil.setStyleClass("accueil");
accueil.setUrl("/accueil.jsf");
this.menumodel.addElement(accueil);
//Start here i create submenu with personal access for all user
for (Autorisation auto : this.permList) {
if (auto.getRessource().getSousMenu() != null) {
if (auto.getRessource().getSousMenu().size() != 0) {
//Create submenu
DefaultSubMenu submenu = new DefaultSubMenu();
submenu.setIcon(null);
submenu.setLabel(auto.getRessource().getMenu());
this.menumodel.addElement(submenu);
for (Ressource r : auto.getRessource().getSousMenu()) {
//Feed submenu with menu item
DefaultMenuItem item = new DefaultMenuItem();
item.setValue(r.getMenu());
item.setUrl(r.getPath());
submenu.addElement(item);
}
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.