Primefaces:未考虑subMenu上的展开属性

我有一个panelMenu,里面有一些子菜单,其扩展属性是在一个支持bean上控制的.问题是,不同子菜单的扩展状态似乎由浏览器缓存,具体取决于用户在该URL上的每个子菜单的先前状态,忽略设置为扩展的布尔状态.行为与p:panelMenu和p:menu相同.

您可以在PF项目上重现该问题,将以下代码添加到jsf页面.不需要支持bean.第一次加载页面时,中间的子菜单将显示为折叠.如果重新加载页面,在菜单上播放一下之后,不再考虑扩展属性,并且页面显示的方式响应用户在浏览器上的最后配置.

<h:form>
    <p:panelMenu toggleable="true">
        <p:submenu label="No expandido" expanded="false">
            <p:menuitem value="External" url="http://www.primefaces.org"/>
        </p:submenu>
        <p:submenu label="Expandido" expanded="true">
            <p:menuitem value="External" url="http://www.primefaces.org"/>
        </p:submenu>
        <p:submenu label="No expandido" expanded="false">
            <p:menuitem value="External" url="http://www.primefaces.org"/>
        </p:submenu>
    </p:panelMenu>
</h:form>

参加手册,这种行为不是预期的:

           expanded - false - Boolean - Defines the state of submenu.

……根据Cagatay在PF论坛上的帖子,panelMenu已经准备好使用扩展属性了.

问题是,有没有办法在panelMenu或菜单中设置扩展/不扩展subMenu元素的状态?

感谢您提出任何意见/建议/解决方法.

Primefaces 5.2 | Tomcat 7.0.X | Chrome IE11

最佳答案 您是否尝试过设置panelMenu的有状态属性:

<p:panelMenu stateful="false">

这会禁止菜单缓存到cookie.

点赞