java - 何时用冒号前缀表单 ID

标签 java ajax jsf primefaces

我有两种形式的两个数据表,forma 和 formg。每个表格里面都有一个 p:dataTable 、groupsa 和groupsg。在每个数据表中,都有一个自定义列显示名为 fava 和 favg 的图像( h:graphicImage )。

单击图像时,将更新其他数据表中的图像。

<p:ajax event="click" listener="#{agent.toogleFavorite}"
update="fava, :formg:groupsg:favg" />

没有冒号,我得到一个异常(exception):
javax.faces.FacesException: Cannot find component with identifier "forma:agentsa:fava" referenced from "groupsg:0:favg".

formg:groupsg:favg 和 :formg:groupsg:favg 有什么区别?

我正在使用 JSF2.0 和 PrimeFaces 3.4。

最佳答案

:前缀将使其成为绝对客户端 ID,因此将相对于 UIViewRoot 进行搜索。而不是最近的父级 NamingContainer .当您想要引用不在同一个最接近的父级内的组件时,您应该(必须)使用它 NamingContainer . <h:form><h:dataTable> (和 <p:dataTable> )是 NamingContainer成分。

另见 How to find out client ID of component for ajax update/render? Cannot find component with expression "foo" referenced from "bar"详细说明。

关于java - 何时用冒号前缀表单 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12367597/

相关文章:

javascript - 在 ajax 调用后,jquery 隐藏不适用于同一个 div 类?

java - 尝试嵌套 JSF 表达式字符串

jsf - UISelectMany 值应该是数组或集合类型,实际类型是 java.lang.String

java - 如何检查此复选框是否已从 Java 中的其他方法启用?

javascript - 如何从浏览器内存中删除 Ajax 请求?

Java - 使用 Jena APi - 从 RDF 文件获取数据

java - 在 Java 中使用 XSLT 将 XML 转换为 HTML 字符串

jsf - 如何在 h :inputText 中设置 Map 值

java - Eclipse - 使用父项目资源文件夹时的 Maven 警告

java - 如何在 Java 中将 URL(可能包括查询字符串)表示为文件名而不模糊原始 URL?