Spring MVC自定义异常页面

因工作需要自己添加一个异常页面,弄完小结一下,具体项目配置如下:

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>

这样配置完成后,在系统发生异常时,异常页面就会显示为自定义的友好页面。

当然异常类型也可以自定义。

你可能感兴趣的:(Spring MVC自定义异常页面)