嵌套的ui:fragment不接受第二个呈现的属性

时间:2014-04-15 07:35:18

标签: jsf primefaces

在模板文件中,我有一个嵌套的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语句或者我在某处错过了一个点?

1 个答案:

答案 0 :(得分:2)

可能有一个问题,如果p:panelMenu是组件树中的直接子项,p:submenu只会添加ui:fragment(只是猜测,我没有检查过)。使用p:panelMenu会在页面的组件树中将组件放在p:submenup:submenu之间。

您可能会尝试直接使用{{1}}的呈现属性(它应该有一个)。