SpringMVC的異常處理,SimpleMappingExceptionResolver只能簡單的處理異常html
當發生異常的時候,根據發生的異常類型跳轉到指定的頁面來顯示異常信息java
ExceptionController.java 處理器web
package com.orange.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; import com.orange.exception.NameException; import com.orange.exception.PasswordException; @Controller @RequestMapping("/exception") public class ExceptionController { @RequestMapping("/simple") public String doException(){ int i = 3 / 0; return "/showException.jsp"; } }
defaultException.jsp 發生異常跳轉的頁面spring
<%@ page language="java" contentType="text/html; charset=GBK" pageEncoding="GBK"%> <%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=GBK"> <base href="<%=basePath %>"> <title>DefaultExceptionPage</title> </head> <body> ERROR! DefaultExceptionPage<br> message: <c:out value="${ex.message }"></c:out> </body> </html>
springMVC配置SimpleMappingExceptionResolverapp
<bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver"> <!-- 指定全部沒有指定的異常,都跳轉到該頁面 --> <property name="defaultErrorView" value="/defaultException.jsp" /> <!-- 跳轉時攜帶異常對象 --> <property name="exceptionAttribute" value="ex"></property> </bean>