【问题标题】:jsf richfaces a4j:jsFunction forward outcomejsf richfaces a4j:jsFunction forward 结果
【发布时间】:2012-07-31 12:15:30
【问题描述】:

是否可以创建a4j:jsFunction,它将在我的托管 bean 中调用一个方法并从那里执行转发到另一个 jsf 页面?

提前致谢。

【问题讨论】:

    标签: jsf jsf-2 richfaces


    【解决方案1】:

    不,这是不可能的,因为<a4j:jsFunction> 将在 HTML 中创建一个可用的 javascript 方法,该方法通过 Ajax 与服务器通信。相反,你可以做一些丑陋的事情:

    <h:form id="myForm">
        <a4j:jsFunction name="myJSFunction" action="#{myBean.jsLogic}"
            oncomplete="document.getElementById('myForm:btnForward').click();" />
        <a4j:commandButton id="btnForward" style="display: none;"
            action="#{myBean.doForward}" />
    </h:form>
    

    在这种情况下,在您的 js 函数结束时,您将调用可以进行导航的 &lt;a4j:commandButton&gt;(也可以是 &lt;a4j:commandLink&gt; 或任何其他 h 组件)的方法。

    【讨论】:

      【解决方案2】:

      嗯,它不是真正的转发,但你可以做一个重定向:

      只要确定你在faces-config文件中对应的navigation-case有对应的标签即可:

      <redirect />
      

      那么在ajax调用之后浏览器会被重定向到指定的页面。

      这对于 Luiggi 的响应有缺点,即进行两次服务器调用,一次是 ajax,然后是重定向。

      作为一个优势,它使代码更简洁。

      【讨论】:

        猜你喜欢
        • 2013-05-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-09-04
        • 2011-06-14
        • 2012-08-09
        • 2011-09-11
        • 1970-01-01
        相关资源
        最近更新 更多