在不使用绑定的情况下访问同一标签内的标签属性
Accessing tag attribute within the same tag without using binding
我正在使用 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' : ''}"/>
其中 url
与此 p:menuitem 标记中的相同 url
属性。
这可行吗?
组件本身由 #{component}
提供。
所以,应该这样做:
<p:menuitem ... url="/pages/index.jsf"
styleClass="#{view.viewId == component.url ? 'nav-selected-menuitem' : ''}" />
请注意,如果组件的渲染器实现不当(即它没有正确执行 pushComponentToEL()
as mandated by encodeBegin()
),这可能会失败。这反过来值得组件库维护者的问题报告。
另请参阅:
我正在使用 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' : ''}"/>
其中 url
与此 p:menuitem 标记中的相同 url
属性。
这可行吗?
组件本身由 #{component}
提供。
所以,应该这样做:
<p:menuitem ... url="/pages/index.jsf"
styleClass="#{view.viewId == component.url ? 'nav-selected-menuitem' : ''}" />
请注意,如果组件的渲染器实现不当(即它没有正确执行 pushComponentToEL()
as mandated by encodeBegin()
),这可能会失败。这反过来值得组件库维护者的问题报告。