你的位置:首页 > 软件开发 > Java > springMVC全局Exception异常处理SimpleMappingExceptionResolver

springMVC全局Exception异常处理SimpleMappingExceptionResolver

发布时间:2016-06-22 12:00:03
继承了SimpleMappingExceptionResolver贴上代码/** * 对controller异常进行全局处理 * 区分了对普通请求和ajax请求的异常处理,普通请求返回到配置的errorCode页面,或者返回到指定的页面 * @author * */public ...

继承了SimpleMappingExceptionResolver

贴上代码

/** * 对controller异常进行全局处理 * 区分了对普通请求和ajax请求的异常处理,普通请求返回到配置的errorCode页面,或者返回到指定的页面 * @author * */public class CustomException extends SimpleMappingExceptionResolver {  private final transient Logger logger = LoggerFactory.getLogger(getClass());  @Override  protected ModelAndView doResolveException(HttpServletRequest request,      HttpServletResponse response, Object handler, Exception ex) {    String viewName = determineViewName(ex, request);    if (viewName != null) {// JSP格式返回      //增加普通提交返回到自己页面errorPage      String errorPage = String.valueOf(request.getAttribute("errorPage"));      //回到自己的页面      if(StringUtils.isNotBlank(errorPage)){        viewName = errorPage;      }      if (!(request.getHeader("accept").indexOf("application/json") > -1 || (request          .getHeader("X-Requested-With") != null && request          .getHeader("X-Requested-With").indexOf("))) {        // 如果不是异步请求        // Apply HTTP status code for error views, if specified.        // Only apply it if we're processing a top-level request.        Integer statusCode = determineStatusCode(request, viewName);        if (statusCode != null) {          applyStatusCodeIfPossible(request, response, statusCode);        }        return getModelAndView(viewName, ex, request);      } else {// JSON格式返回        try {          Map<String, Object> jsonMap = new HashMap<String, Object>();          // 返回是错误          jsonMap.put(BaseController.AJAX_RESULT, false);          jsonMap.put(BaseController.RESULT_MESSAGE, ex.getMessage());          response.setContentType("text/html;charset=UTF-8");          PrintWriter writer = response.getWriter();          writer.write(JSON.toJSONString(jsonMap));          writer.close();        } catch (Exception e) {          logger.error("doResolveException", "系统异常!", e);        }        return null;      }    } else {      return null;    }  }}

原标题:springMVC全局Exception异常处理SimpleMappingExceptionResolver

关键词:Spring

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录