SpringMvc-HandlerExceptionResolver
本文描述了当系统内部错误时,如何把JSON对象返回给前台
public class ExceptionResolver implements HandlerExceptionResolver {public static final long serialVersionUID = 1L;@Overridepublic ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler,Exception ex) {ModelAndView mv = new ModelAndView();MappingJackson2JsonView view = new MappingJackson2JsonView();Map<String, Object> attributes = new HashMap<String, Object>();attributes.put("msg", "随便写点什么");attributes.put("resultCode", "系统错误");view.setAttributesMap(attributes);mv.setView(view);return mv;}
}
不使用MappingJackson2JsonView
同Jaskson,我们自己也可以继承了AbstractView,然后重写AbstractView的抽象方法renderMergedOutputModel
方法体里这样实现
@Override
protected void renderMergedOutputModel(Map<String,Object> model,HttpServletRequest request,HttpServletResponse response) throws Exception{//创建给前端返回的字符串String aa="{\"msg\":\"系统异常\"}";ServletOutputStream out=response.getOutputStream();out.write(aa.getBytes());out.flush();out.close();
}
这样直接mv.setView(V);当项目出异常的时候,前端就直接显示msg:系统异常了
更简单直接的方法:直接将上述renderMergedOutputModel方法内的内容,挪动到resolveException中,这样也不用创建AbstractView的子类了
@Override
public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler,Exception ex) {String aa="{\"msg\":\"系统异常\"}";ServletOutputStream out=response.getOutputStream();out.write(aa.getBytes());out.flush();out.close();return new ModelAndView();
}
本文的方式使用了最底层的request和response,而你可以使用更简洁的方式,可以参考ExceptionHandler,但是你需要注意ExceptionHandler无法获取request和response,相对来说失去了灵活性,带来了便利性
SpringMvc-HandlerExceptionResolver相关推荐
- SpringMVC中利用HandlerExceptionResolver完成异常处理
SpringMVC中利用HandlerExceptionResolver完成异常处理 参考文章: (1)SpringMVC中利用HandlerExceptionResolver完成异常处理 (2)ht ...
- SpringMVC使用HandlerExceptionResolver实现全局异常处理器
在SpringMVC中,提供了一个全局异常处理器,用于对系统中出现的异常进行统一处理.在一般的系统中,DAO层.Service层及Controller层出现异常都以"throws Excep ...
- 【springmvc】九大组件之HandlerExceptionResolver
在Spring MVC中,如果对异常不做任何处理,Spring MVC会将异常直接抛给容器. 例如下面的代码抛出了异常: @GetMapping("e1") public Stri ...
- SpringMVC 异常处理(简单异常处理器 SimpleMappingExceptionResolver;自定义异常处理需要实现HandlerExceptionResolver接口)
一.SpringMVC 框架异常处理流程 二.异常处理的两种方式 三.简单异常处理器 SimpleMappingExceptionResolver 1.自定义异常类 package com.lt.ex ...
- springMVC自定义全局异常
SpringMVC通过HandlerExceptionResolver处理程序异常,包括Handler映射,数据绑定以及目标方法执行时所发生的异常. SpringMVC中默认是没有加装载Handler ...
- SpringMVC + Hibernate-Validator 参数校验
2019独角兽企业重金招聘Python工程师标准>>> 前言: Web开发中,最为常见的场景就是前端表单数据.Json数据与后端实体类的绑定,即使JS能校验并阻止大部分的必填漏填的风 ...
- 面试官:小伙汁,你画的SpringMVC请求处理过程是从网上抄的吧?
点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 作者:Sicimike blog.csdn.net/Bai ...
- SpringMVC工作原理详解
点击上方"方志朋",选择"置顶或者星标" 你的关注意义重大! 先来看一下什么是 MVC 模式 MVC 是一种设计模式. MVC 的原理图如下: SpringMV ...
- SpringMVC 中的异常处理
SpringMVC 中的异常处理 异常处理的思路 系统中异常包括两类:预期异常和运行时异常 RuntimeException,前者通过捕获异常从而获取异常信息,后者主要通过规范代码开发.测试通过手段减 ...
- springMVC对异常处理的支持
2019独角兽企业重金招聘Python工程师标准>>> 无论做什么项目,进行异常处理都是非常有必要的,而且你不能把一些只有程序员才能看懂的错误代码抛给用户去看,所以这时候进行统一的异 ...
最新文章
- PHP变量在内存中的存储方式
- 【杂文】企业数字化转型展望—角色转型
- PHP算法基于相同键合并数组
- 纪中在家培训总结(2020.2.1~2020.2.24)
- 整理加解释:以太网、快速以太网、千兆以太网和万兆以太网分别的概念和区分 大详解
- 回文绝对求下联:亚冠决赛决冠亚
- java socket 丢字节_Java:socket消息丢失了
- jsp点击文字改变颜色_这样给图片添加上文字、诗词、歌词,超吸睛
- 我能想到的圆角背景的实现方法
- 100以内偶数的个数_【数学杂谈】如何记住1000以内的所有质数?
- [外包]!采用asp.net core 快速构建小型创业公司后台管理系统(四.quartz 简单配置使用)...
- Android 使用 TableLayout 布局拉伸宽度
- 思维导图中主题连接线格式修改教程
- DirectSound 播放声音杂音问题.
- 计算机播放qq音乐没声音怎么办,Win7电脑中QQ音乐听不了怎么办?
- 不要重新发明轮子_请重新发明轮子
- 自主开发新媒体,湖南卫视封杀网络转播权
- oracle获取今天是周几,根据DateTime来获取当天是周几(已完结)
- 云端服务器上传本地项目
- Day 15 正则表达式
热门文章
- IDEA代码自动换行
- Spring Boot整合Swagger3注解@ApiImplicitParam的allowMultiple属性
- The service command supports only basic LSB actions (start, stop, restart, try-restart, reload, forc
- linux原子方式,linux – 以原子方式移动目录
- 摄像头取景框_苹果11的「超取景框拍摄照片」,很多人都不知道怎么用
- MySQL----获取当前日期当月第一天,最后一天
- JavaSE----多态
- android gridview 数据绑定,Android GridView数据绑定
- android audio 自动播放,HTML5之audio无法自动播放的问题
- centos7下安装mysql5.6_CentOS7安装后MySQL5.6如何配置MySQL5.6呢?