我正在使用PrimeFaces编写一个简单的菜单,我想知道我是否可以访问自身内的标记属性。让我解释一下:
...
<p:menuitem value="#{labels['menu.home']}" url="/pages/index.jsf"
styleClass="#{view.viewId == '/pages/index.jsf' ? 'nav-selected-menuitem' : ''}"/>
...
由于这将针对更多页面重复,有没有办法做某种事情:
<p:menuitem value="#{labels['menu.home']}" url="/pages/index.jsf"
styleClass="#{view.viewId == url ? 'nav-selected-menuitem' : ''}"/>
此{p} menuitem标记中url
与url
属性相同。
这可行吗?
答案 0 :(得分:1)
组件本身可由#{component}
获得。
所以,这应该做:
<p:menuitem ... url="/pages/index.jsf"
styleClass="#{view.viewId == component.url ? 'nav-selected-menuitem' : ''}" />
如果组件的渲染器执行得不好(即它没有按pushComponentToEL()
的规定正确执行encodeBegin()
),则可能会失败。这反过来值得组件库维护者的问题报告。