SpringMVC之JSON数据交互和SpringMVC全局异常处理

SpringMVC之JSON数据交互

1.在pom.xml导入依赖

   
     com.fasterxml.jackson.core
     jackson-databind
     2.9.3
   

   
     com.fasterxml.jackson.core
     jackson-core
     2.9.3
   

   
     com.fasterxml.jackson.core
     jackson-annotations
     2.9.3
   
    

2.在spring-mvc.xml里配置相关信息


   


   


    


       
           
               
           

       

   

              class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
       
       
           
                text/html;charset=UTF-8
                text/json;charset=UTF-8
                application/json;charset=UTF-8
           

       

   

 

3.案例演示

在要返回JSON的数据方法上添加@ResponseBody注解(注意:添加此注解之后此方法绕开了springMVC视图解析器,不会跳转页面,会显示JSON格式的数据)

SpringMVC之JSON数据交互和SpringMVC全局异常处理_第1张图片

 返回的JSON格式数据

4. 在实体类是标记 @JsonIgnore前端接收的JSON数据就不会显示这个属性

SpringMVC之JSON数据交互和SpringMVC全局异常处理_第2张图片

注意:方法的返回值必须必须是加了注解的实体类

SpringMVC之JSON数据交互和SpringMVC全局异常处理_第3张图片

 效果图 (bookId属性没有显示)

5.@JsonFormat 

6. @JsonProperty(value)   

SpringMVC之JSON数据交互和SpringMVC全局异常处理_第4张图片

 SpringMVC全局异常处理

通过 @ControllerAdvice 注解,我们可以在一个地方对所有 @Controller 注解的控制器进行管理。
注解了 @ControllerAdvice 的类的方法可以使用 @ExceptionHandler@InitBinder、 @ModelAttribute 注解到方法上,这对所有注解了 @RequestMapping 的控制器内的方法都有效。

  1. @ExceptionHandler:用于捕获所有控制器里面的异常,并进行处理。
  2. @InitBinder:用来设置 WebDataBinderWebDataBinder 用来自动绑定前台请求参数到 Model 中。
  3. @ModelAttribute:@ModelAttribute 本来的作用是绑定键值对到 Model 里,此处是让全局的@RequestMapping 都能获得在此处设置的键值对。
     

 SpringMVC中自带了一个异常处理器叫SimpleMappingExceptionResolver,该处理器实现了HandlerExceptionResolver 接口,全局异常处理器都需要实现该接口

SpringMVC之JSON数据交互和SpringMVC全局异常处理_第5张图片

 使用@ControllerAdvice+@ExceptionHandler实现全局异常

SpringMVC之JSON数据交互和SpringMVC全局异常处理_第6张图片

响应封装类+全局异常

状态枚举,接口响应状态码、消息,统一在此枚举类中定义,方便阅读、修改。

SpringMVC之JSON数据交互和SpringMVC全局异常处理_第7张图片

 

响应封装类:用于一json的形式统一输出(错误)信息

SpringMVC之JSON数据交互和SpringMVC全局异常处理_第8张图片

 

全局异常处理:用于报错返回结果 

SpringMVC之JSON数据交互和SpringMVC全局异常处理_第9张图片

SpringMVC之JSON数据交互和SpringMVC全局异常处理_第10张图片 

业务层代码:业务判断,报错给出错误提示信息
SpringMVC之JSON数据交互和SpringMVC全局异常处理_第11张图片

 

你可能感兴趣的:(java)