【问题标题】:Primefaces : how to create <p:menubar> dynamically in primefaces 4?Primefaces:如何在 primefaces 4 中动态创建 <p:menubar>?
【发布时间】:2014-05-05 21:11:35
【问题描述】:

我正在从 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: &lt;p:menubar model="#{menuBean.simpleMenuModel}"/&gt;

现在在 primefaces 4 中,类/接口似乎发生了变化,我不知道在这个版本中这样做。 谁能帮忙!!!.

【问题讨论】:

  • 在 PrimeFaces 4 中,Submenu 只是一个接口,您可能想要实例化例如DefaultSubMenuMenuItem 也是如此。此外,在模型创建结束时,您需要致电simpleMenuModel.generateUniqueIds();
  • 嗨,veronika 可以提供一个小例子吗??我想你这么快就回复了。

标签: java jsf-2 primefaces menubar


【解决方案1】:

请看一下页面:

PrimeFaces - New 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 字符串。

【讨论】:

  • 现在如何将 model.getElements() 添加到 Menubar 对象中?
【解决方案2】:

我个人在 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);
            }
        }
    }
}

【讨论】:

    猜你喜欢
    • 2013-09-20
    • 2012-06-24
    • 1970-01-01
    • 2014-05-13
    • 1970-01-01
    • 2013-09-15
    • 2013-10-02
    • 2015-01-06
    • 1970-01-01
    相关资源
    最近更新 更多