我正在尝试检索 p:dataList 内的 h:panelGroup 的客户端 ID。
我尝试了两种方法:
1.使用component.clientId 例如:
<h:panelGroup id="listItem">
<h:outputText value="#{component.clientId}" />
</h:panelGroup>
2.使用 p:component() 例如:
<h:panelGroup id="listItem">
<h:outputText value="#{p:component('listItem')}" />
</h:panelGroup>
请注意,该面板组位于数据列表内。现在,这两种情况生成的客户端 ID 是不同的。 (1) 没有将值“listItem”附加到客户端 ID,而 (2) 在生成的 clientId 中具有值“listItem”。
此外,使用 (1) 生成的客户端 ID 与生成的 html 组件上的客户端 ID 不同。
有人能解释一下这个问题为什么会这样吗?
隐式 EL 对象#{component}
指的是current组件,在这种情况下
<h:outputText value="#{component.clientId}" />
the <h:outputText>
itself!
如果您打算打印另一个组件的客户端 ID,那么您需要将组件实例绑定到视图中的唯一变量:binding
,以便您可以在同一视图中的其他任何位置引用它。
<h:panelGroup id="listItem" binding="#{listItem}">
<h:outputText value="#{listItem.clientId}" />
</h:panelGroup>
也可以看看:
- 隐式 EL 对象 http://balusc.blogspot.com/2011/09/communication-in-jsf-20.html#ImplicitELObjects
- JSF 中的“绑定”属性如何工作?何时以及如何使用它? https://stackoverflow.com/questions/14911158/how-binding-attribute-in-jsf-works
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)