【SpringMVC注解篇】SpringMVC 注解驱动开发(二)JSON数据交互相关注解

  • JSON数据交互相关注解
    • @RequestBody
      • 示例
      • 访问/useRequestBody请求
      • 访问/getUser请求
    • @ResponseBody
      • 示例
    • @RestController
    • @RestControllerAdvice

JSON数据交互相关注解

@RequestBody

用于获取全部的请求体,注解只能写在形参前@RequestBody本身不进行复杂的JavaBean映射,如果需要必须借助第三方组件完成,这里使用jackson。并且参数的键名称必须和实体类属性名一致。 (其实主要是属性对应的set方法,用属性无关,但是自动生成get,set方法都是按属性生成的,所以说与属性一致)。因为

  • required : 用于指定是否必须有请求体

如果是简单的SSM项目需要引入对jackson的依赖,如果是springboot项目只需要引入web依赖,即可对jackson进行添加,因为springboot给我们做了jackson依赖的版本仲裁。

jackson具体依赖

<dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-annotations</artifactId><version>2.11.3</version>
</dependency>
<dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-core</artifactId><version>2.11.3</version>
</dependency>
<dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.11.3</version>
</dependency>

示例

@RestController
public class RequestBodyController {/**@RequestMapping注解不指定RequestMethod代表任意类型都支持* @param body* @return*/@RequestMapping("/useRequestBody")public String useRequestBody(@RequestBody(required = false) String body) {System.out.println("body: "+body);return body;}/*** 复杂类型参数* @param user* @return*/@RequestMapping("/getUser")public User getUser(@RequestBody(required = false) User user) {System.out.println("user: "+user);return user;}}class User {private String username;private String password;public String getUsername() {return username;}//get..  set.. 方法// toString()方法
}

访问/useRequestBody请求

application/x-www-form-urlencoded

后台打印

application/json

后台打印

访问/getUser请求

application/x-www-form-urlencoded


后台报错不支持的内容类型 ‘application/x-www-form-urlencoded;charset=UTF-8’

application/json

后台打印

@ResponseBody

用于用流输出响应正文,注解可以写在类或方法上

示例

@Controller
public class ResponseBodyController {@RequestMapping("useResponseBody")@ResponseBodypublic String useResponseBody(String name) {return name;}
}

@RestController

是@Controller和@ResponseBody的组合注解。它具备@Controller注解的全部功能,同时多了一个@ResponseBody注解的功能

@RestControllerAdvice

是@ControllerAdvice和@ResponseBody的组合注解。它和@ControllerAdvice注解的作用一样,并且支持@ResponseBody的功能

【SpringMVC注解篇】SpringMVC 注解驱动开发(二)JSON数据交互相关注解相关推荐

  1. 六、Springmvc json数据交互

    editItem.jsp <script type="text/javascript">$(function(){alert(111);var params = '{& ...

  2. SpringMVC入门(二)—— 参数的传递、Controller方法返回值、json数据交互、异常处理、图片上传、拦截器

    SpringMVC入门(二)-- 参数的传递.Controller方法返回值.json数据交互.异常处理.图片上传.拦截器 参考文章: (1)SpringMVC入门(二)-- 参数的传递.Contro ...

  3. 基于MTD的NAND驱动开发(二)

    基于MTD的NAND驱动开发(二) 基于MTD的NAND驱动开发(三) http://blog.csdn.net/leibniz_zsu/article/details/4977853 http:// ...

  4. 番外篇——字符型驱动开发

    [番外篇]字符型驱动开发 前言 开发简单的字符型驱动 前言 驱动程序在编译时需要依赖编译好的内核文件,如果内核文件和实际的开发板对不上,则很可能导致加载驱动失败.所以一旦对设备的内核或设备树进行了更改 ...

  5. (转)SpringMVC学习(十)——SpringMVC与前台的json数据交互

    http://blog.csdn.net/yerenyuan_pku/article/details/72514022 json数据格式在接口调用中.html页面中比较常用,json格式比较简单,解析 ...

  6. SpringMVC的json数据交互

    SpringMVC的json数据交互 @RequestBody 作用: @RequestBody注解用于读取http请求的内容(字符串),通过springmvc提供的HttpMessageConver ...

  7. springMVC之与json数据交互方法

    2019独角兽企业重金招聘Python工程师标准>>> 因为我也要返回json数据.所以需要这个注解@ResponseBody,把Java对象转换成json字符串 注意:  1.@R ...

  8. springMVC JSON数据交互

    1.引入jackson 2.编写POJO 3.编写Controller 3.1.javabean接收 3.2.Map接收 4.访问测试 4.1.设置基本请求参数 4.2.设置请求参数,发送请求 为实现 ...

  9. linux服务器开发二(系统编程)--线程相关

    线程概念 什么是线程 LWP:Light Weight Process,轻量级的进程,本质仍是进程(在Linux环境下). 进程:独立地址空间,拥有PCB. 线程:也有PCB,但没有独立的地址空间(共 ...

  10. Spring注解驱动开发第10讲——在@Import注解中使用ImportBeanDefinitionRegistrar向容器中注册bean

    写在前面 在前面的文章中,我们学习了如何使用@Import注解向Spring容器中导入bean,不仅可以使用@Import注解快速向容器中导入bean,也可以在@Import注解中使用ImportSe ...

最新文章

  1. VideoJet伟迪捷1000系列喷码机编程C#
  2. 四舍五入到小数点后两位[重复]
  3. linux 中卸载提示设备正忙怎么办?
  4. python 更改输出的颜色_python 输出指定的颜色
  5. 经常遇到的10大C语言基础算法(珍藏版源码)
  6. 由单例模式造成的内存泄漏
  7. 连通域标记——实现硬币自动计件
  8. c# maiform父窗体改变动态的gridew 奇偶行变色的快捷方法
  9. 服务器协议热更_汽车和电话的开放协议,以及更多开放源新闻
  10. Linux运维问题解决(2)——Linux设置定时重启系统的方法:定时任务crontab 和 编写脚本
  11. sysdate取年取月取日
  12. 创建多线程(8种方式)
  13. 搜索摄像头/录像机IP地址工具是什么
  14. ewebeditor
  15. Halcon之Variation Model
  16. 自制一个交叉适配器来检修网络设备(转)
  17. c语言用数字代表字母,使用c语言判断数字字母
  18. 深度 | AI芯片之智能边缘计算的崛起——实时语言翻译、图像识别、AI视频监控、无人车这些都需要终端具有较强的计算能力,从而AI芯片发展起来是必然,同时5G网络也是必然...
  19. 8B10B编解码的Verilog实现
  20. 前端行业发展和职业规划

热门文章

  1. 小学智能测试软件,小学智能点读宝
  2. Dart语言详解(一)——详细介绍
  3. dart语言和PHP,如何以Dart语言完全转储/打印变量到控制台?
  4. 阿里云漏洞修复 RHSA-2019:0109-Important: perl secur
  5. 电信版行货黑莓9630修复历险记
  6. 模2除法(CRC冗余码计算)和二进制/十进制除法
  7. 用STVP擦除芯片写保护
  8. 惊帆健康监测模块,心率检测模块
  9. 语音识别(ASR) 阿里云
  10. YOLO v5与双目测距结合,实现目标的识别和定位测距