Jsf 2 使用Primefaces 5,我应该能够*动态*构建一个只包含menuitems的简单p:菜单吗。。。i、 例如,是否没有子菜单?

Jsf 2 使用Primefaces 5,我应该能够*动态*构建一个只包含menuitems的简单p:菜单吗。。。i、 例如,是否没有子菜单?,jsf-2,primefaces,Jsf 2,Primefaces,问题:使用Primefaces 5,我能否动态构建一个只包含菜单项的简单p:菜单,即不包含子菜单 例如,我能够成功地实现这个静态菜单 - - - <h3>Static p:menu (i.e., no submenus) - WORKING </h3> <p:menu id="menustatic"> <p:menuitem value="operation1" action="#{breadC

问题:使用Primefaces 5,我能否动态构建一个只包含菜单项的简单p:菜单,即不包含子菜单

例如,我能够成功地实现这个静态菜单

    -
    -
    -
    <h3>Static p:menu  (i.e., no submenus) - WORKING </h3>
    <p:menu id="menustatic">
        <p:menuitem value="operation1"  action="#{breadCrumb.navigate('page0')}" />
        <p:menuitem value="operation2"  action="#{breadCrumb.navigate('page1')}" />
        <p:menuitem value="operation3"  action="#{breadCrumb.navigate('page2')}" />
    </p:menu>
    -
    -
    -
页面/标签

    <h3>Dyamic p:menu  (i.e., no submenus) -  NOT WORKING </h3>
    <p:menu id="menudynamic" model="#{menuController.menuModel}" />   
Dyamic p:菜单(即无子菜单)-不工作
当我点击“动态”构建菜单的菜单项时,我在控制台上收到这个错误

    <Jul 17, 2014 1:12:52 PM EDT> <Warning> <javax.enterprise.resource.webcontainer.jsf.lifecycle> <BEA-000000> <For input string: "null"
    java.lang.NumberFormatException: For input string: "null"
        at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
        at java.lang.Integer.parseInt(Integer.java:449)
        at java.lang.Integer.parseInt(Integer.java:499)
        at org.primefaces.component.menu.BaseMenuRenderer.findMenuitem(BaseMenuRenderer.java:83)
        at org.primefaces.component.menu.BaseMenuRenderer.decode(BaseMenuRenderer.java:61)
        Truncated. see log file for complete stacktrace
    >       

当我构建静态版本时,问题是我首先只是误用了“p:menu”标记吗?。。。 -这就是为什么我试图构建同一菜单的动态版本不能像我预期的那样工作的原因吗

谢谢你的帮助


:)

我也有同样的错误,通过为每个菜单项设置一个数字id来解决。 e、 g.
item.setId(“1”)


也许这对你也有帮助。

在添加所有菜单元素后,你应该在你的菜单模型上调用
generateUniqueIds()

结果表明,你可以创建“p:menu”,而不必使用“p:submenu”。。。发现除非在托管bean的构造函数中初始化MenuModel,否则我的动态“p:menu”无法工作。实例化MenuModel并在被调用的方法中初始化它。还不知道为什么-必须RTFM,找到合适的解决方案吗?在构造函数中初始化对我来说是没有选项的,因为它在会话期间会改变,这意味着可以工作,但只有在我以0开始索引时才可以。否则,单击菜单项时调用wron操作。
    <Jul 17, 2014 1:12:52 PM EDT> <Warning> <javax.enterprise.resource.webcontainer.jsf.lifecycle> <BEA-000000> <For input string: "null"
    java.lang.NumberFormatException: For input string: "null"
        at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
        at java.lang.Integer.parseInt(Integer.java:449)
        at java.lang.Integer.parseInt(Integer.java:499)
        at org.primefaces.component.menu.BaseMenuRenderer.findMenuitem(BaseMenuRenderer.java:83)
        at org.primefaces.component.menu.BaseMenuRenderer.decode(BaseMenuRenderer.java:61)
        Truncated. see log file for complete stacktrace
    >