JSF アクション メソッドから非 JSF ページにリクエストを転送したい。JSFアクションで以下のコードを使用しています:
public String submitUserResponse() {
// ...
parseResponse("foo.jsp", request, response);
// ...
return "nextpage";
}
private String parseResponse(String uri, HttpServletRequest request, HttpServletResponse response) {
if (uri != null) {
RequestDispatcher dispatcher = request.getRequestDispatcher(uri);
dispatcher.forward(request, response);
return null;
}
// ...
return "xxxx";
}
ユーザーが JSF ページから送信ボタンをクリックすると、submitUserResponse()
アクション メソッドが呼び出され、このメソッドはnextpage
文字列を返します。ここで、リクエストは通常のフローで次の JSF ページに転送されます。しかし、私の要件では、リクエストを次の非 JSF ページに転送する必要があります。行っていますが、サーバーで例外の下に表示されています。
java.lang.IllegalStateException: 応答がコミットされた後に転送できません
parseResponse(...)
を使用してリクエストを転送した後、 との間のコード行return "nextpage";
がまだ実行されていることを確認しdispatched.forward(uri)
ました。で同じことが起こりましたresponse.sendRedirect(url)
。これはどのように発生し、どうすれば解決できますか?