0

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

提前致谢。

4

2 回答 2

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组件)的方法。

于 2012-08-03T07:20:41.223 回答
0

好吧,它不是真正的转发,但您可以进行重定向:

只要确保您对应navigation-case的 infaces-config文件具有相应的标签:

<redirect />

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

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

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

于 2016-04-04T10:52:55.897 回答