jsf richfaces a4j:jsFunction前进结果

时间:2012-08-02 13:54:56

标签: jsf jsf-2 richfaces

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

感谢提前。

2 个答案:

答案 0 :(得分: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函数结束时,您将调用可以执行导航的<a4j:commandButton>(也是<a4j:commandLink>或任何其他h组件)的方法。< / p>

答案 1 :(得分:0)

嗯,这不是一个真正的前锋,但你可以做一个重定向:

请确保navigation-case文件中相应的faces-config具有相应的标记:

<redirect />

然后在ajax调用之后,浏览器将被重定向到指定的页面。

这有利于Luiggi的响应,它产生两个服务器调用,ajax一个然后重定向。

作为优势,它可以使代码更清晰。