ポータル環境の JSF ページに commandLink があります。クリックすると、(facesContext.getExternalcontext().sendRedirect(//Servlet URL//) を呼び出して) サーブレットにリダイレクトします。
サーブレットは、サーバーから Excel ファイルをダウンロードするために作成されます。
- ファイルとして保存ダイアログが開き、バックグラウンドで JSF ポータル ページが表示されます。
これは問題なく動作しますが、ファイルをダウンロードしたときに、ポータルの JSF ページでアクション コンポーネントをクリックすると、アクションが実行されずにページが更新されるだけであることがわかりました。動作させるには、そのアクション コンポーネントをもう一度クリックする必要があります。
PhaseListener を使用して JSF ライフサイクルを追跡したところ、リダイレクトの後、手順 6 の ierenderResponse フェーズが欠落していることに気付きました。これが問題でしょうか?どうすればこれを解決できますか?