Spring MVC自定义异常页面
jopen
11年前
因工作需要自己添加一个异常页面,弄完小结一下,具体项目配置如下:
spring-mvc.xml:
<!-- 将Controller抛出的异常转到特定View, 保持SiteMesh的装饰效果 --> <bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver"> <property name="exceptionMappings"> <props> <prop key="java.lang.Throwable">error/myException</prop> </props> </property> </bean>
上面的定义异常处理部分的解释为:只要发生了Exception异常,就会自动跳转到WEB-INF/views/myException.jsp页面。
myException.jsp:可以根据需要设置自定义异常页面信息
<%@ page contentType="text/html;charset=UTF-8" isErrorPage="true" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ page import="org.slf4j.Logger,org.slf4j.LoggerFactory" %> <%response.setStatus(200);%> <% Exception ex = (Exception) request.getAttribute("javax.servlet.error.exception"); //记录日志 Logger logger = LoggerFactory.getLogger("myException.jsp"); logger.error(ex.getMessage(), ex); %> <!DOCTYPE html> <html> <head> <title>Exception - 异常信息</title> </head> <body> <h2>Exception - 异常信息.</h2> </body> </html>
在web.xml添加如下配置:
<error-page> <exception-type>java.lang.Throwable</exception-type> <location>/WEB-INF/views/error/myException.jsp</location> </error-page> <error-page> <error-code>404</error-code> <location>/WEB-INF/views/error/404.jsp</location> </error-page>
这样配置完成后,在系统发生异常时,异常页面就会显示为自定义的友好页面。
当然异常类型也可以自定义。