向Flash地图添加重定向属性会导致以下异常
java.lang.IllegalStateException: Cannot create a session after the response has been committed
at org.apache.catalina.connector.Request.doGetSession(Request.java:2377)
at org.apache.catalina.connector.Request.getSession(Request.java:2097)
at org.apache.catalina.connector.RequestFacade.getSession(RequestFacade.java:833)
at org.springframework.web.servlet.support.DefaultFlashMapManager.retrieveFlashMaps(DefaultFlashMapManager.java:149)
at org.springframework.web.servlet.support.DefaultFlashMapManager.requestCompleted(DefaultFlashMapManager.java:202)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:830)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
这是我的请求处理程序的样子
@RequestMapping(value = "/foo", method = RequestMethod.POST)
public String getFoo(RedirectAttributes attr) {
attr.addFlashAttribute("twiddle", "doodle");
return "redirect:/cow";
}
有谁知道导致此问题的原因/如何调试问题?
答案 0 :(得分:1)
经过一些调查后,结果发布的JSP视图服务于发布到/ foo的表单有session=false
页面指令属性,如下所示:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1" session="false" %>
Spring重定向属性使用HttpSession对象,该属性导致跳过HttpSession生成。删除该属性/将其设置为true后,重定向工作正常
答案 1 :(得分:1)
要更好地了解问题,请参阅此链接 http://nirlevy.blogspot.com/2007/09/requestdispatcherforward-and-filters.html 添加更多
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
在web.xml中。它会工作。
答案 2 :(得分:0)
确保在您的配置文件中,网址以前锋斜线开头,即&#39; /&#39;例如&#39; /index.jsp'。