3

我可以将 Ajax“更新”命令发送到由于以前设置为 false 的渲染选项而尚未渲染的 JSF 组件:

render="#{BackingBean.doRender}"

doRender 设置为true就在“更新”发送之前。

这是正确的方法吗?

我正在使用 PrimeFaces 并且在此期间update甚至doRender设置为 true 后一个组件不显示。

4

1 回答 1

14

ajax 更新通过 JavaScript 与 JSF 生成的 HTML DOM 树一起工作(正如 web 浏览器检索到的那样)。如果一个 JSF 组件没有被渲染,那么它根本不会出现在 HTML DOM 树中,因此 JavaScript 找不到任何要更新的东西。

相反,您需要更新总是呈现的父组件。

例如

<h:panelGroup id="foo">
    <h:someComponent rendered="#{bean.rendered}" />
</h:panelGroup>

<p:commandButton ... update="foo" />
于 2012-05-21T15:12:20.970 回答