是否可以使用Primefaces选择器- PFS更新任何html片段?想想看:
<h:outputText id="test" value="#{testBean.date}"/>
<span id="test2"><h:outputText value="#{testBean.date}"/></span>
<p:commandButton value="test" process="@none" update="@(#test)"/>
<p:commandButton value="test2" process="@none" update="@(#test2)"/>
只有第一个按钮刷新。这是一个微不足道的例子——我真正需要的是更新datatable的某些部分,而不是刷新整个组件。
不,那不可能。更新目标不仅要在客户端通过document.getElementById()
在HTML DOM树中获得,而且要在服务器端通过UIViewRoot#findComponent()
获得,以便JSF可以重新生成所需的HTML输出,最终在ajax更新期间得到应用。
如果您向JSF提供一个普通HTML元素的ID,那么它将无法在组件树中找到任何东西来重新生成所需的新HTML输出。只需将普通HTML元素替换为JSF组件。
PrimeFaces选择器最终被转换为HTML元素id。PrimeFaces将在jQuery选择器找到的元素上循环,并在传递给JSF之前提取它们的id
属性。因此,这本质上与这里已经回答的问题相同:是否有可能使用JSF ajax更新非JSF组件(纯HTML) ?