2019独角兽企业重金招聘Python工程师标准>>>

1.在spring-mvc.xml中增加配置:

比如我的freemarker视图定义的是:/WEB-INF/template

我的页面则放在template下的common目录下,所以下方定义的是common/500,文件扩展名根据视图定义可以忽略

<mvc:annotation-driven /><!--全局异常输出 --><bean id="exceptionResolver" class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver"><property name="exceptionMappings"><props><prop key="java.lang.Exception">common/500</prop></props></property><property name="statusCodes"><props><prop key="common/500">500</prop></props></property><!-- 设置日志输出级别,不定义则默认不输出警告等错误日志信息 --><property name="warnLogCategory" value="WARN"></property><!-- 默认错误页面,当找不到上面mappings中指定的异常对应视图时,使用本默认配置 --><property name="defaultErrorView" value="common/500"></property><!-- 默认HTTP状态码 --><property name="defaultStatusCode" value="500"></property></bean>

2.配置界面返回

根据自己的页面视图,在对应目录下增加文件,这里我采用的是freemarker,返回标准的json串

"code": 500,
"msg": "系统异常,请联系管理员",
"data": {<#assign errs=Request["exception"].getStackTrace()![]><#list errs as err><#assign className=Request["exception"].getStackTrace()[err_index].getClassName()!""><#if className?contains("Controller") || className?contains("Service")>"Exception Type":"${Request["exception"].getClass()}","Class Path":"${Request["exception"].getStackTrace()[err_index].getClassName()!""}","Class Name":"${Request["exception"].getStackTrace()[err_index].getFileName()!""}","Error Line":"${Request["exception"].getStackTrace()[err_index].getLineNumber()!""}","Method Name":"${Request["exception"].getStackTrace()[err_index].getMethodName()!""}","-----------------------------------------------------------------------",<br/></#if></#list>}
}

3.效果图

{"code": 500,"msg": "系统异常,请联系管理员","data": {"Exception Type": "class java.lang.NullPointerException","Class Path": "com.aliyun.web.user.UserController","Class Name": "UserController.java","Error Line": "57","Method Name": "queryList","-----------------------------------------------------------------------",}
}

转载于:https://my.oschina.net/gmupload/blog/2247133

SpringMVC 全局异常处理,返回json相关推荐

  1. springmvc全局异常处理ControllerAdvice区分返回响应类型是页面还是JSON

    springmvc全局异常处理ControllerAdvice区分返回响应类型是页面还是JSON 参考文章: (1)springmvc全局异常处理ControllerAdvice区分返回响应类型是页面 ...

  2. (SpringMVC)Controller返回JSON数据

    文章目录 Controller返回JSON数据 1. 测试使用 2. 代码优化 3. 测试集合输出 4. 输出时间对象 5. 抽取为工具类 6. FastJson Controller返回JSON数据 ...

  3. SpringMVC 全局异常处理的简单应用

    2019独角兽企业重金招聘Python工程师标准>>> 在SpringMVC框架的项目开发过程中,你还在使用 try{} catch(){} 输出异常吗?,那样你就真的OUT了,Sp ...

  4. 一个SpringMVC接口能返回JSON又能返回XML? 安排!

    我们有一个接口服务为下游的系统提供数据服务,本来好好的大家都愉快地传递JSON,非常和谐.可最近有个新需求去对接一个很老的系统,这倒是不算啥,可这个老系统数据不是以JSON传递的而是以XML传递的. ...

  5. springMVC 全局异常处理

    spring3.0注解很方便强大,所以更多的开发者都倾向于用注解来代替原来繁琐的配置,而对于异常也有相应的注解,我个人并不觉得在配置文件中配置全局异常很麻烦,如果整个项目都用了注解,而你再用配置就显得 ...

  6. springmvc全局异常处理

    1.自定义异常类与自定义异常处理器 1).自定义异常类 /** *自定义异常类继承Exception */ public class SysException extends Exception {p ...

  7. java 异常返回json_Spring MVC全局异常后返回JSON异常数据

    问题: 当前项目是作为手机APP后台支持,使用spring mvc + mybaits + shiro进行开发.后台服务与手机端交互是发送JSON数据.如果后台发生异常,会直接返回异常页面,显示异常内 ...

  8. springmvc高级(拦截器,全局异常处理,文件上传)

    SpringMVC 1.文件上传 文件上传: 指的就是将用户本地计算机中文件上传到服务器上的过程称之为文件上传 1).文件上传编程步骤 # 1.项目中引入相关依赖 <dependency> ...

  9. JSON和几个的全局异常处理

    目录 一.SpringMVC对JSON的支持 1.json的各种场景 二.SpringMVC的全局异常处理的3种形式 1.非全局异常处理问题演示 ① 为什么要全局异常处理 ② 异常处理思路 ③ Spr ...

最新文章

  1. 写出我的第一个框架:迷你版Spring MVC
  2. osg中实现HUD(OSG初级篇1)
  3. Qt 中pro文件换行注意的问题
  4. 【POJ - 3177】Redundant Paths(边双连通分量,去重边)
  5. java testng 源代码_根据测试用例的java源码自动生成TestNG的XML文件
  6. vlan 优科r500_ruckus 常用配置方法
  7. vue-cli构建的项目手动添加eslint配置
  8. java putall实现,Java JsonObject.putAll方法代码示例
  9. numpy中矩阵的转置_NumPy矩阵transpose()-Python中数组的转置
  10. jBPM工作流 之JBPM4
  11. 阿里P6+面试:介绍下观察者模式?
  12. linux服务器什么意思,linux中的“/”和“./”是什么意思
  13. Cortex-M0 Devices introduction
  14. matlab怎么算不定积分,matlab计算不定积分
  15. 美国 android手机号码,格式编辑文本为美国电话号码1(xxx)-xxxx你输入android?
  16. 【OpenCV 例程200篇】20. 图像的按位运算(cv2.bitwise)
  17. 虚拟空间windows和linux,虚拟主机选windows还是linux
  18. Kanzi学习之路(4):Kanzi的属性系统
  19. 计算机毕业设计SSM大学生校园社团管理系统【附源码数据库】
  20. 8通道CAN FD,更强大的数据记录仪GL3400

热门文章

  1. 香农定理和奈奎斯特定理区别_这一切都从指数函数开始(4)——采样定理
  2. java枚举类是什么_Java学习--常用类(2)、Math类、枚举类
  3. 2打开md文件_File Cabinet Pro for Mac(菜单栏文件管理器)
  4. angular 应为声明或语句_“允许”员工自愿降薪后,多益网络再发声:声明降薪非自愿者奖 3 万...
  5. 【有三说深度学习】深度学习前夕
  6. 全球及中国电子式儿科呼吸机行业发展现状与市场销量调研报告2022版
  7. 全球及中国制糖行业销售规模与运营态势研究报告2022版
  8. 中国新型储能市场技术进展与投资经营模式建议分析报告2022-2028年版
  9. 中国数据备份一体机产业未来供需状况及投资潜力价值报告2021年版
  10. Building COM Objects in C#