3

JSF 2.0 アプリケーションを開発しています。をクリックすると、バックエンド Bean アクションでいくつかのロジックを実行し、新しいウィンドウで別の URL にリダイレクトする必要があり、アクションを終了する前に元の Bean アクションでいくつかのクリーンアップ作業を実行します。現在、「faces-redirect=true」とともに externalContext.redirect() メソッドを使用しています (リダイレクトが発生した後に実行するクリーンアップ コードがあるため)。しかし、外部 URL は同じウィンドウで開かれています。

別の新しいブラウザー ウィンドウで開く必要がありますが、リダイレクト後のクリーンアップ コードも実行されます。これを行う方法を教えてください。

4

1 に答える 1

4

サーバー側から新しいブラウザウィンドウ/タブを開くことはできません。これは、クライアント側からのみ実行できます。target="_blank"方法の 1 つは、送信ボタンがある HTML フォームに属性を追加することです。

したがって、JSF 用語では、次のようになります。

<h:form target="_blank">

これは、バッキング Bean コードが行っていることとは何の関係もありません。サーバーがHTTPリクエストを処理している間、同期して実行されます。

于 2013-09-05T19:57:28.927 に答える