Tôi đã thiết lập web.xml như dưới đây. Tôi cũng có một bộ điều khiển dựa trên chú thích, có bất kỳ mẫu URL nào và sau đó chuyển đến jsp tương ứng (tôi đã thiết lập điều đó trong tệp -servlet.xml). Tuy nhiên, nếu tôi đi đến một trang kết thúc bằng .html (và có jsp không tồn tại), tôi không thấy trang 404 tùy chỉnh (và xem lỗi bên dưới trong nhật ký). Bất kỳ trang nào không kết thúc bằng .html, tôi có thể thấy trang 404 tùy chỉnh.Tùy chỉnh 404 sử dụng Spring DispatcherServlet
Làm cách nào tôi có thể định cấu hình để có trang 404 tùy chỉnh cho bất kỳ trang nào đi qua DispatcherServlet?
Cũng muốn thêm rằng nếu tôi đặt trang lỗi của mình thành trang tĩnh (ví dụ: error.htm) nó hoạt động, nhưng nếu tôi thay đổi thành jsp (ví dụ: error.jsp), tôi nhận được IllegalStateException. Bất kỳ trợ giúp sẽ được đánh giá cao.
lỗi log
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)
khiển
@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>
Hãy thử điều này -> http://ekiras.blogspot.in/ 2015/02/custom-error-404-error-page-in-spring-mvc.html –