1 基于配置文件的处理 spring-mvc.xml中配置 <!-- 配置文件的异常处理机制 --> <bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver"> <property name="exceptionAttribute" value="ex"></property> <property name="exceptionMappings"> <props> <prop key="java.lang.Exception">error</prop> </props> </property> </bean> 2 通过实现HandlerExceptionResolver接口自定义异常处理类 package com.hzlssd.company.controller; import java.util.HashMap; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.HandlerExceptionResolver; import org.springframework.web.servlet.ModelAndView; /** * 通过实现HandlerExceptionResolver接口自定义异常处理类 * @author QY */ public class MyMappingExceptionResolver implements HandlerExceptionResolver{ @Override public ModelAndView resolveException(HttpServletRequest req, HttpServletResponse res, Object obj, Exception ex) { Map<String,Object> model = new HashMap<String,Object>(); model.put("ex",ex); return new ModelAndView("error",model); } } <!-- 注解开启自定义异常处理类 --> <bean id="exceptionHandler" class="com.hzlssd.company.controller.MyMappingExceptionResolver" /> 3 通过注解的方式自定义异常处理方法,让可能抛出异常的类继承该类,从而处理异常 package com.hzlssd.company.controller; import javax.servlet.http.HttpServletRequest; import org.springframework.web.bind.annotation.ExceptionHandler; /** * 通过注解的方式自定义异常处理方法,让可能抛出异常的类继承该类,从而处理异常 * @author QY */ public class BaseExceptionAnn{ @ExceptionHandler public String execute(HttpServletRequest request,Exception ex){ request.setAttribute("ex", ex); return "error"; } } 抛出异常类要继承自定义的类 @Controller @RequestMapping("/login") public class HelloController extends BaseExceptionAnn{ } |
|
来自: 擎天猪mpnlajkd > 《Spring》