0

我有一个简单的 JSF 页面,其中包含如下几个标签:

  ...
  <h:form>
  ...
  <h:panelGroup id="menuItem1" styleClass="topLevelMenu" layout="block"
        rendered="#{MyBean.currentUser.menuAccessible}">
            <h:outputText value="Menu 1"/>
    </h:panelGroup>

  <h:panelGroup id="menuItem2" styleClass="topLevelMenu" layout="block"
        rendered="#{MyBean.currentUser.menuAccessible}">
            <h:outputText value="Menu 2"/>
    </h:panelGroup>

  <h:panelGroup id="menuItem3" styleClass="topLevelMenu" layout="block"
        rendered="#{MyBean.currentUser.menuAccessible}">
            <h:outputText value="Menu 3"/>
    </h:panelGroup>
  ...
  </h:form>
  ...

呈现的条件是“真”(我已经用调试器验证了它)。奇怪的是,只显示了第二项和第三项(菜单 2 和菜单 3)。第一个,即使它与其他两个具有相同的“渲染”条件,也不会显示!当我将第一个更改为 render="true" 时,它会正常显示。

任何想法为什么会发生这种情况?我在我的页面中有大约 15 个这样排列的面板组(我正在使用它们来为应用程序创建菜单项)。

注意:我正在将应用程序从 JSF 1.2 迁移到 JSF 2.1。我刚刚将 t:div (之前正常工作)更改为 h:panelGroup layout="block"...

4

0 回答 0