Ich habe web.xml wie folgt eingerichtet. Ich habe auch einen annotierungsbasierten Controller, der jedes URL-Muster aufnimmt und dann zum entsprechenden jsp geht (ich habe das in der -servlet.xml eingerichtet). Wenn ich jedoch zu einer Seite gehe, die mit .html endet (und deren Jsp nicht existiert), sehe ich die benutzerdefinierte 404-Seite nicht (und sehe den folgenden Fehler im Protokoll). Jede Seite, die nicht in .html endet, kann die benutzerdefinierte 404-Seite sehen.Benutzerdefinierte 404 mit Spring DispatcherServlet
Wie kann ich eine benutzerdefinierte 404-Seite für jede Seite konfigurieren, die das DispatcherServlet durchläuft?
Auch möchte ich hinzufügen, dass, wenn ich meine Fehlerseite auf eine statische Seite (dh. Error.htm) es funktioniert, aber wenn ich es zu einem JSP (dh. Error.jsp) ändern, bekomme ich die IllegalStateException. Jede Hilfe wäre willkommen.
Protokollfehler
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)
Controller
@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>
Versuchen Sie, diese -> http://ekiras.blogspot.in/ 2015/02/custom-error-404-fehler-page-in-spring-mvc.html –