我想将请求从 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";
}
当submitUserResponse()
用户从 JSF 页面单击提交按钮时,将调用 action 方法,并且此方法返回nextpage
字符串。这里请求以正常流程转发到下一个 JSF 页面。但在我的要求中,我需要将请求转发到下一个非 JSF 页面。它正在运行,但它在服务器中显示在异常下方。
java.lang.IllegalStateException:提交响应后无法转发
我观察到parseResponse(...)
在return "nextpage";
使用dispatched.forward(uri)
. 同样的事情也发生了response.sendRedirect(url)
。这是如何引起的,我该如何解决?