我下面设立的web.xml。 我也有一个基于注解的控制器,它接受任何URL模式,然后进入到相应的jsp(我已经设定了在-servlet.xml后缀)。 但是,如果我去,在结束的.html页面(而其JSP不存在),我没有看到自定义的404页(和在日志中看到下面的错误)。 不以html结束的任何一页,我可以看到自定义的404页。
我如何可以配置有通过DispatcherServlet的推移任何页面自定义404页?
还想补充一点,如果我把我的错误页面,静态页面(即error.htm)它的工作原理,但如果我把它变成一个jsp(即error.jsp文件),我得到的IllegalStateException异常。 任何帮助,将不胜感激。
记录错误
Caused by: java.lang.IllegalStateException: getOutputStream() has already been called for this response
at org.apache.catalina.connector.Response.getWriter(Response.java:606)
at org.apache.catalina.connector.ResponseFacade.getWriter(ResponseFacade.java:195)
at org.apache.jasper.runtime.JspWriterImpl.initOut(JspWriterImpl.java:124)
调节器
@RequestMapping(value = {"/**"})
public ModelAndView test() {
ModelAndView modelAndView = new ModelAndView();
return modelAndView;
}
web.xml中
<servlet>
<servlet-name>my_servlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>
...
<servlet-mapping>
<servlet-name>my_servlet</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
...
<error-page>
<error-code>404</error-code>
<location>/error.html</location>
</error-page>