我正在开发基于 primefaces 的 www 应用程序。我的组件之一 [tree] 是在 .xhtml 文件中定义的。我想从不同的地方[文件]刷新它。有什么办法可以做到这一点吗?我尝试过经典
update="nameOfElement"
但是根本不起作用。我不需要逐行的特定代码。一般而言如何做到这一点以及是否可能。如果没有 -> 我可以使用 primepush 来实现吗?如何传递树结构?
最佳答案
update
许多 Primefaces 组件中的属性通常采用空格分隔的组件 id 字符串,在发生 JSF Ajax 请求/响应后应重新绘制该字符串。以下条目可以放入更新属性中:
- @this 将仅更新此组件
- @parent 将更新父级
UINamingContainer
该组件的 - @form 将更新此组件表单中的所有组件
- nameOfElement 仅当组件相对于同一个 UINamingContainer 时才会更新具有以下元素的组件。
所以它似乎无法找到具有此 id 的组件,只是因为它位于不同的 UINamingContainer
中,例如。 <form> <h:dataTable> etc
.
使用:
前缀将解析相对于页面 View 根的 id。
update=":nameOfElement"
如果元素不在命名容器内,这应该能够找到该元素...
但是如果它位于前面添加了 id 的表单内怎么办?
update=":nameOfForm:nameOfElement"
然后上面应该找到相对于 View 根的表单前缀元素。
关于jsf - 如何刷新不同文件中的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14485382/