使用 ajax 更新 preRenderView 组件
Update preRenderView component with ajax
有没有办法用 ajax 更新 preRenderView 组件?
一些例子:
<html>
<f:event type="preRenderView" listener="#{bean1.load}" />
<f:event type="preRenderView" listener="#{bean2.load}" />
<body>
<div jsf:rendered="#{bean1.enabled}" >
// some code here
</div>
</div jsf:rendered="#{bean2.enabled}" >
// some code here
</div>
</body>
</html>
在这个例子中,我希望案例 1 的 preRenderView 仅在启用 bean1 时才被触发。在 java 代码中添加检查不是一个好主意,因为每次都会调用会话,而且我有比上面的简单示例更复杂的方法。
我可以将 f:events 包裹在任何组件中吗?向组件添加渲染属性并使用 ajax 调用更新它们?
据我所知,不允许添加任何其他组件作为 head 或 body 作为 html 标签的子项。
是否允许将 preRenderView 打包到 body 元素中并用简单的 jsf:div?
包裹起来
改为使用 preRenderComponent
事件并将那些 f:events 放在 div 中。
不过我不确定它是否能很好地与这种 JSF 绑定配合使用。您可能必须将这些 div 替换为 h:panelGroup layout="block"
(这也会呈现简单的 div)。
有没有办法用 ajax 更新 preRenderView 组件?
一些例子:
<html>
<f:event type="preRenderView" listener="#{bean1.load}" />
<f:event type="preRenderView" listener="#{bean2.load}" />
<body>
<div jsf:rendered="#{bean1.enabled}" >
// some code here
</div>
</div jsf:rendered="#{bean2.enabled}" >
// some code here
</div>
</body>
</html>
在这个例子中,我希望案例 1 的 preRenderView 仅在启用 bean1 时才被触发。在 java 代码中添加检查不是一个好主意,因为每次都会调用会话,而且我有比上面的简单示例更复杂的方法。
我可以将 f:events 包裹在任何组件中吗?向组件添加渲染属性并使用 ajax 调用更新它们?
据我所知,不允许添加任何其他组件作为 head 或 body 作为 html 标签的子项。 是否允许将 preRenderView 打包到 body 元素中并用简单的 jsf:div?
包裹起来改为使用 preRenderComponent
事件并将那些 f:events 放在 div 中。
不过我不确定它是否能很好地与这种 JSF 绑定配合使用。您可能必须将这些 div 替换为 h:panelGroup layout="block"
(这也会呈现简单的 div)。