是否可以创建a4j:jsFunction
来调用托管bean中的方法并从那里执行转发到另一个jsf页面?
感谢提前。
答案 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一个然后重定向。
作为优势,它可以使代码更清晰。