在模板文件中,我有一个嵌套的ui:fragment语句:
<ui:fragment rendered="#{helperBean.isAdministrationPage()}">
<p:layoutUnit position="west" size="100" resizable="true"
closable="false" collapsible="true" effect="drop"
id="west-navigation">
<h:form>
<p:panelMenu>
<ui:fragment rendered="#{roleCheckerBean.isUserSalesPerson()}">
<p:submenu label="Benutzerverwaltung">
<p:menuitem value="Registrierungsanträge"
url="#{ivy.html.startref('14560484B827F5F3/startAdministrationPageRegistration.ivp')}" />
</p:submenu>
</ui:fragment>
</p:panelMenu>
</h:form>
</p:layoutUnit>
</ui:fragment>
只有在用户具有特定角色时才应呈现子菜单元素。 roleCheckerBean正在工作(我已经交换了isAdministrationPage()和isUserSalesPerson()以及所需的结果)但是即使用户具有某个角色,上面的代码也不会呈现子菜单。
是否无法嵌套ui:fragment语句或者我在某处错过了一个点?
答案 0 :(得分:2)
可能有一个问题,如果p:panelMenu
是组件树中的直接子项,p:submenu
只会添加ui:fragment
(只是猜测,我没有检查过)。使用p:panelMenu
会在页面的组件树中将组件放在p:submenu
和p:submenu
之间。
您可能会尝试直接使用{{1}}的呈现属性(它应该有一个)。