@RequestBody, @ResponseBody 注解理解
2024-09-07 23:04:20
@RequestBody, @ResponseBody 注解理解
自己以前没怎么留意过,来实习后公司采用前后端分离的开发方式,前后端拿到的注释都是 json 格式的,这时候 @RequestBody, @ResponseBody 这两个注解就非常好用,下面详细介绍用法:
@RequestBody
1. 作用:
- 该注解用于读取 Request 请求的 body 部分数据,使用系统默认配置的 HttpMessageConverter 进行解析,然后把相应的数据绑定到要返回的对象上;
- 再把 HttpMessageConverter 返回的对象数据绑定到 controller 中方法的参数上。
2. 使用时机:
GET、POST方式提交时, 根据 request header Content-Type 的值来判断:
application/x-www-form-urlencoded
:可选(即非必须,因为这种情况的数据 @RequestParam, @ModelAttribute 也可以处理,当然@RequestBody也能处理);multipart/form-data
:不能处理(即使用@RequestBody不能处理这种格式的数据);- 其他格式:必须(其他格式包括application/json, application/xml等。这些格式的数据,必须使用@RequestBody来处理);
PUT 方式提交时, 根据request header Content-Type的值来判断:
application/x-www-form-urlencoded
:必须;multipart/form-data
:不能处理;- 其他格式:必须;
3. 举个例子:
也就是说,如果是 json 格式的数据,我们要传入的参数是一个对象,那就必须使用 @RequestBody
。
@RequestMapping(value = "/test", Method = RequestMethod.POST, produces = "application/json;charset="UTF-8")
@ResponseBody
public JSONObject class Test(@RequestBody Test test) {
String name = test.getName();
// 将 name 回显
Map<String, Object> map = new HashMap<>();
map.put("name", name);
JSONObject obj = JSONObject.fromObject(map);
return obj;
}
@ResponseBody
1. 作用:
该注解用于将 Controller 的方法返回的对象,通过适当的 HttpMessageConverter 转换为指定格式后,写入到 Response 对象的body 数据区。
2. 使用时机:
返回的数据不是 html 标签的页面,而是其他某种格式的数据时(如 json、xml 等)使用。
3. 举个例子:
@RequestMapping(value = "/test", Method = RequestMethod.POST, produces = "application/json;charset="UTF-8")
@ResponseBody
public JSONObject class Test() {
JSONObject obj = new JSONObject;
obj.put("test", 1);
// 将 obj 回显
return obj;
}
参考:
https://blog.csdn.net/walkerJong/article/details/7520896
完。
最新文章
- Emgu.CV 播放视频
- input 栏位光标末尾闪烁
- 8086cpu-intel汇编指令简介
- powerdesinger中建立一个表后,出现Existence of index的警告
- 第2章 面向对象的设计原则(SOLID):5_迪米特法则
- java9-7 成员内部类的修饰符
- 选数 2002年NOIP全国联赛普及组
- web之困:现代web应用安全指南
- 关于composer
- HDU 5858 Hard problem
- Linux系统、版本、CPU、内存查看、硬盘空间
- Ruby On Rails 4 hello world,Ruby On Rails上手
- [转]解决百度ueditor插入动态地图空白 支持iframe方法
- Polar Code(1)极化码SC译码迭代公式的理解
- Item 26: 避免对universal引用进行重载
- 大数据小白系列——HDFS(2)
- 2017BUAA软工个人项目之数独生成与求解
- 如何在同一台服务器上部署两个tomcat
- 设计模式《JAVA与模式》之访问者模式
- PHP缓存机制详解
热门文章
- ARTS打卡计划第八周
- 预处理、const、static与sizeof-用#define实现宏并求最大值和最小值
- 【Eureka】Eureka 是什么
- ios-Realm数据库的使用
- Flask+uwsgi+Nginx+Ubuntu部署教程
- [PySpark] Spark SQL on a large file
- 1.ini读写操作
- 【转载】execute、executeUpdate、executeQuery三者的区别(及返回值)
- DOTS学习资源
- django 之(一) --- DjangoRestFormwork