我有两种形式的两个数据表,forma and formg。每个表格里面都有一个p:dataTable
, groupsa and groupsg。在每个数据表中都有一个显示图像的自定义列(h:graphicImage
)称为fava and favg.
单击图像时,其他数据表中的图像将被更新。
<p:ajax event="click" listener="#{agent.toogleFavorite}"
update="fava, :formg:groupsg:favg" />
如果没有冒号,我会得到一个例外:
javax.faces.FacesException: Cannot find component with identifier "forma:agentsa:fava" referenced from "groupsg:0:favg".
form:groups:favg 和 :form:groups:favg 之间有什么区别?
我正在使用 JSF2.0 和 PrimeFaces 3.4。
The :
前缀将使其成为绝对客户端 ID,因此将相对于UIViewRoot
而不是最近的父母NamingContainer
。当您想要引用不在同一最近父级内部的组件时,您应该(必须)使用它NamingContainer
. The <h:form>
and <h:dataTable>
(and <p:dataTable>
) are NamingContainer
成分。
也可以看看如何找到ajax更新/渲染组件的客户端ID?找不到带有从“bar”引用的表达式“foo”的组件 https://stackoverflow.com/questions/8634156/how-to-reference-components-in-jsf-ajax-cannot-find-component-with-identifier/8644762#8644762以获得详细的解释。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)