使用ajax

时间:2017-11-22 00:10:05

标签: html ajax jsf primefaces jsf-2

有没有办法用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包装它?

1 个答案:

答案 0 :(得分:2)

使用preRenderComponent事件,并将这些f:事件放在div中。

我不确定它是否会与这种JSF绑定很好地配合。您可能必须用h:panelGroup layout="block"替换这些div(它也会渲染简单的div)。