Primefaces:如何在primefaces 4中动态创建?

我正在从primefaces 3.4迁移到primfaces 4.我已经在primefaces 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:

现在在primefaces 4中,类/接口似乎已经改变,我不知道在这个版本中这样做。 请有人帮忙!!!

请看一下页面:

PrimeFaces – 新的MenuModel 。

简单的例子:

 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); } } } }