私は以下のようにweb.xmlを設定しました。また、私はアノテーションベースのコントローラを持っています。これは任意のURLパターンを受け取り、対応するJSPに移動します(これを-servlet.xmlに設定しました)。しかし、.htmlで終わるページ(そしてjspが存在しないページ)に行くと、カスタム404ページが表示されません(また、ログに以下のエラーが表示されます)。 .htmlで終わらないページは、カスタム404ページが表示されます。カスタム404 Spring DispatcherServletを使用して
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>
この試してみてください - > http://ekiras.blogspot.in/を2015/02/custom-error-404-page-in-spring-mvc.html –