spring mvc 通用异常处理(包含JSP&JSON) 联系客服

发布时间 : 星期一 文章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=\