代码之家  ›  专栏  ›  技术社区  ›  kaiser

使用ajax更新preRenderView组件

  •  2
  • kaiser  · 技术社区  · 7 年前

    有没有办法用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的预渲染视图。在java代码中添加一个check不是一个好主意,因为会话每次都会被调用,我有一种比上面简单示例更复杂的方法。

    我可以在任何组件中包装f:事件吗?向组件添加渲染属性并使用ajax调用更新它们?

    据我所知,不允许将任何其他组件添加为html标记的子元素,如head或body。 是否允许将preRenderView打包到body元素中,并用一个简单的jsf:div包装它?

    1 回复  |  直到 7 年前
        1
  •  2
  •   Vsevolod Golovanov    7 年前

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

    不过,我不确定它是否能很好地与这种JSF绑定配合使用。你可能需要用 h:panelGroup layout="block" (这也会渲染简单div)。