本文描述了当系统内部错误时,如何把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相关推荐

  1. SpringMVC中利用HandlerExceptionResolver完成异常处理

    SpringMVC中利用HandlerExceptionResolver完成异常处理 参考文章: (1)SpringMVC中利用HandlerExceptionResolver完成异常处理 (2)ht ...

  2. SpringMVC使用HandlerExceptionResolver实现全局异常处理器

    在SpringMVC中,提供了一个全局异常处理器,用于对系统中出现的异常进行统一处理.在一般的系统中,DAO层.Service层及Controller层出现异常都以"throws Excep ...

  3. 【springmvc】九大组件之HandlerExceptionResolver

    在Spring MVC中,如果对异常不做任何处理,Spring MVC会将异常直接抛给容器. 例如下面的代码抛出了异常: @GetMapping("e1") public Stri ...

  4. SpringMVC 异常处理(简单异常处理器 SimpleMappingExceptionResolver;自定义异常处理需要实现HandlerExceptionResolver接口)

    一.SpringMVC 框架异常处理流程 二.异常处理的两种方式 三.简单异常处理器 SimpleMappingExceptionResolver 1.自定义异常类 package com.lt.ex ...

  5. springMVC自定义全局异常

    SpringMVC通过HandlerExceptionResolver处理程序异常,包括Handler映射,数据绑定以及目标方法执行时所发生的异常. SpringMVC中默认是没有加装载Handler ...

  6. SpringMVC + Hibernate-Validator 参数校验

    2019独角兽企业重金招聘Python工程师标准>>> 前言: Web开发中,最为常见的场景就是前端表单数据.Json数据与后端实体类的绑定,即使JS能校验并阻止大部分的必填漏填的风 ...

  7. 面试官:小伙汁,你画的SpringMVC请求处理过程是从网上抄的吧?

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 作者:Sicimike blog.csdn.net/Bai ...

  8. SpringMVC工作原理详解

    点击上方"方志朋",选择"置顶或者星标" 你的关注意义重大! 先来看一下什么是 MVC 模式 MVC 是一种设计模式. MVC 的原理图如下: SpringMV ...

  9. SpringMVC 中的异常处理

    SpringMVC 中的异常处理 异常处理的思路 系统中异常包括两类:预期异常和运行时异常 RuntimeException,前者通过捕获异常从而获取异常信息,后者主要通过规范代码开发.测试通过手段减 ...

  10. springMVC对异常处理的支持

    2019独角兽企业重金招聘Python工程师标准>>> 无论做什么项目,进行异常处理都是非常有必要的,而且你不能把一些只有程序员才能看懂的错误代码抛给用户去看,所以这时候进行统一的异 ...

最新文章

  1. PHP变量在内存中的存储方式
  2. 【杂文】企业数字化转型展望—角色转型
  3. PHP算法基于相同键合并数组
  4. 纪中在家培训总结(2020.2.1~2020.2.24)
  5. 整理加解释:以太网、快速以太网、千兆以太网和万兆以太网分别的概念和区分 大详解
  6. 回文绝对求下联:亚冠决赛决冠亚
  7. java socket 丢字节_Java:socket消息丢失了
  8. jsp点击文字改变颜色_这样给图片添加上文字、诗词、歌词,超吸睛
  9. 我能想到的圆角背景的实现方法
  10. 100以内偶数的个数_【数学杂谈】如何记住1000以内的所有质数?
  11. [外包]!采用asp.net core 快速构建小型创业公司后台管理系统(四.quartz 简单配置使用)...
  12. Android 使用 TableLayout 布局拉伸宽度
  13. 思维导图中主题连接线格式修改教程
  14. DirectSound 播放声音杂音问题.
  15. 计算机播放qq音乐没声音怎么办,Win7电脑中QQ音乐听不了怎么办?
  16. 不要重新发明轮子_请重新发明轮子
  17. 自主开发新媒体,湖南卫视封杀网络转播权
  18. oracle获取今天是周几,根据DateTime来获取当天是周几(已完结)
  19. 云端服务器上传本地项目
  20. Day 15 正则表达式

热门文章

  1. IDEA代码自动换行
  2. Spring Boot整合Swagger3注解@ApiImplicitParam的allowMultiple属性
  3. The service command supports only basic LSB actions (start, stop, restart, try-restart, reload, forc
  4. linux原子方式,linux – 以原子方式移动目录
  5. 摄像头取景框_苹果11的「超取景框拍摄照片」,很多人都不知道怎么用
  6. MySQL----获取当前日期当月第一天,最后一天
  7. JavaSE----多态
  8. android gridview 数据绑定,Android GridView数据绑定
  9. android audio 自动播放,HTML5之audio无法自动播放的问题
  10. centos7下安装mysql5.6_CentOS7安装后MySQL5.6如何配置MySQL5.6呢?