有没有办法用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>
在这个例子中,我希望只有在启用bean1时才会触发案例1的preRenderView。添加一个java代码检查不是一个好主意,因为会话将每次调用,并且我的方法比上面的简单示例更复杂。
我可以在任何组件中包装f:事件吗?将渲染的属性添加到组件并使用ajax调用更新它们?
据我所知,不允许添加任何其他组件作为头部或身体作为html标签的子项。 是否允许将preRenderView打包在body元素中并用简单的jsf:div包装它?
答案 0 :(得分:2)
使用preRenderComponent
事件,并将这些f:事件放在div中。
我不确定它是否会与这种JSF绑定很好地配合。您可能必须用h:panelGroup layout="block"
替换这些div(它也会渲染简单的div)。