发布时间 : 星期一 文章spring mvc 通用异常处理(包含JSP&JSON)更新完毕开始阅读d7950702a26925c52cc5bfaf
1、当spring mvc的后台程序发生了异常,我们可以编写一个通用的异常处理类来进行异常处理,异常处理包括JSON形式的异常提示和jsp形式的异常提示,以下是我们的异常处理类,它可以继承自SimpleMappingExceptionResolver
public class SimpleHandlerExceptionResolver extends SimpleMappingExceptionResolver {
@Override
public ModelAndView resolveException(HttpServletRequest request,
HttpServletResponse response, Object handler, Exception ex) {
HandlerMethod handlerMethod = (HandlerMethod) handler; ResponseBody body = handlerMethod
.getMethodAnnotation(ResponseBody.class); // 判断有没有@ResponseBody的注解没有的话调用父方法 if (body == null) {
return super.doResolveException(request, response, handlerMethod,
ex); }
ModelAndView mv = new ModelAndView();
// 设置状态码,注意这里不能设置成500,设成500JQuery不会出错误提示 //并且不会有任何反应
response.setStatus(HttpStatus.OK.value()); // 设置ContentType
response.setContentType(MediaType.APPLICATION_JSON_VALUE); // 避免乱码
response.setCharacterEncoding(\);
response.setHeader(\, \must-revalidate\); try {
ex.printStackTrace();
PrintWriter writer = response.getWriter(); writer.write(JSONObject.fromObject(
ControllerUtil.newErrorResultMap(ex.getMessage())) .toString()); writer.close();
} catch (IOException e) { e.printStackTrace(); }
return mv; } }
2、异常处理类建立好以后,我们要在spring-servlet.xml中把这个类配置成bean,配置如下: class=\