我可以将 Ajax“更新”命令发送到由于以前设置为 false 的渲染选项而尚未渲染的 JSF 组件:
render="#{BackingBean.doRender}"
doRender 设置为true
就在“更新”发送之前。
这是正确的方法吗?
我正在使用 PrimeFaces 并且在此期间update
甚至doRender
设置为 true 后一个组件不显示。
我可以将 Ajax“更新”命令发送到由于以前设置为 false 的渲染选项而尚未渲染的 JSF 组件:
render="#{BackingBean.doRender}"
doRender 设置为true
就在“更新”发送之前。
这是正确的方法吗?
我正在使用 PrimeFaces 并且在此期间update
甚至doRender
设置为 true 后一个组件不显示。
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" />