博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
springMVC全局Exception异常处理SimpleMappingExceptionResolver
阅读量:5062 次
发布时间:2019-06-12

本文共 2581 字,大约阅读时间需要 8 分钟。

继承了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("XMLHttpRequest") > -1))) { // 如果不是异步请求 // 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
jsonMap = new HashMap
(); // 返回是错误 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; } }}

 

 spring.xml配置

error/ioexp
error/sqlexp

 

转载于:https://www.cnblogs.com/ppli/p/5606576.html

你可能感兴趣的文章
PL/0编译器(java version)–PL0.java
查看>>
【栈】1353:表达式括号匹配(stack)
查看>>
SQLServer中文排序
查看>>
numpy笔记—np.squeeze用法
查看>>
ORACLE数据库的一些限制
查看>>
贪心EX
查看>>
elementUi模态框使用baiduMap错误记录
查看>>
jquery_mini_ui
查看>>
[性能调优]PeopleSoft Trace 分析工具 - TraceMagic
查看>>
java-Freemarker TemplateLoader实现模版
查看>>
【GitHub】常用命令
查看>>
FreeRTOS 临界段和开关中断
查看>>
JS初级-作用域
查看>>
LINUX - gcc
查看>>
【UOJ228】基础数据结构练习题(线段树)
查看>>
【CF995F】Cowmpany Cowmpensation(动态规划,拉格朗日插值)
查看>>
【CTS2019】随机立方体(容斥)
查看>>
APM系统SkyWalking介绍
查看>>
php操作Excel
查看>>
第一个Sprint
查看>>