a4j:jsFunction
管理対象Bean内でメソッドを呼び出し、そこから別のjsfページに転送するメソッドを作成することは可能ですか?
前もって感謝します。
いいえ、<a4j:jsFunction>
Ajaxを介してサーバーと通信するHTMLで使用可能なjavascriptメソッドを作成するため、これは不可能です。代わりに、次のような醜いことをすることができます。
<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
コンポーネント)のメソッドを呼び出します。
まあ、それは実際には転送ではありませんが、リダイレクトを行うことができます:
navigation-case
対応するfaces-config
ファイルに対応するタグがあることを確認してください。
<redirect />
次に、ajax呼び出しの後、ブラウザーは指定されたページにリダイレクトされます。
これには、2つのサーバー呼び出し(ajax 1つ、次にリダイレクト)を行うLuiggiの応答に関して不利な点があります。
利点として、それはよりクリーンなコードを作ります。