在不使用绑定的情况下访问同一标记内的标记属性

时间:2016-03-16 22:30:57

标签: jsf primefaces el

我正在使用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标记中urlurl属性相同。

这可行吗?

1 个答案:

答案 0 :(得分:1)

组件本身可由#{component}获得。

所以,这应该做:

<p:menuitem ... url="/pages/index.jsf"
    styleClass="#{view.viewId == component.url ? 'nav-selected-menuitem' : ''}" />

如果组件的渲染器执行得不好(即它没有按pushComponentToEL()的规定正确执行encodeBegin()),则可能会失败。这反过来值得组件库维护者的问题报告。

另见: