@RequestBody的使用方法
基础知识介绍:
@RequestBody主要用来接收前端传递给后端的json字符串中的数据的(请求体中的数据的);而最常用的使用请求体传参的无疑是POST请求了,所以使用@RequestBody接收数据时,一般都用POST方式进行提交。在后端的同一个接收方法里,@RequestBody与@RequestParam()可以同时使用,@RequestBody最多只能有一个,而@RequestParam()可以有多个。
注:一个请求,只有一个RequestBody;一个请求,可以有多个RequestParam。
注:当同时使用@RequestParam()和@RequestBody时,@RequestParam()指定的参数可以是普通元素、
数组、集合、对象等等(即:当,@RequestBody 与@RequestParam()可以同时使用时,原SpringMVC接收
参数的机制不变,只不过RequestBody 接收的是请求体里面的数据;而RequestParam接收的是key-value
里面的参数,所以它会被切面进行处理从而可以用普通元素、数组、集合、对象等接收)。
即:如果参数时放在请求体中,application/json传入后台的话,那么后台要用@RequestBody才能接收到;
如果不是放在请求体中的话,那么后台接收前台传过来的参数时,要用@RequestParam来接收,或
则形参前 什么也不写也能接收。
注:如果参数前写了@RequestParam(xxx),那么前端必须有对应的xxx名字才行(不管其是否有值,当然可以通
过设置该注解的required属性来调节是否必须传),如果没有xxx名的话,那么请求会出错,报400。
注:如果参数前不写@RequestParam(xxx)的话,那么就前端可以有可以没有对应的xxx名字才行,如果有xxx名
的话,那么就会自动匹配;没有的话,请求也能正确发送。
追注:这里与feign消费服务时不同;feign消费服务时,如果参数前什么也不写,那么会被默认是
@RequestBody的。
如果后端参数是一个对象,且该参数前是以@RequestBody修饰的,那么前端传递json参数时,必须满足以下要求:
1、后端@RequestBody注解对应的类在将HTTP的输入流(含请求体)装配到目标类(即:@RequestBody后面的类)时,会根据json字符串中的key来匹配对应实体类的属性,如果匹配一致且json中的该key对应的值符合(或可转换为)实体类的对应属性的类型要求时,会调用实体类的setter方法将值赋给该属性。
2、json字符串中,如果value为""的话,后端对应属性如果是String类型的,那么接受到的就是"",如果是后端属性的类型是Integer、Double等类型,那么接收到的就是null。
3、json字符串中,如果value为null的话,后端对应收到的就是null。
4、如果某个参数没有value的话,在传json字符串给后端时,要么干脆就不把该字段写到json字符串中;要么写value时, 必须有值,null 或""都行。千万不能有类似"stature":,这样的写法,如:
@RequestBody的使用方法相关推荐
- Android客户端连接服务器- OKHttp的简单实用方法
文章目录 一 .OKHttp简介 二. OkHttp3使用 1.创建HTTPClient实例 2.Get请求 3.POST请求 三.Timeouts(超时) **写在前面:本文只是对OKHttp3的简 ...
- 6、Spring MVC 之 定义@RequestMapping处理方法
@RequestMapping处理器方法可以非常灵活的签名.支持的方法参数和返回值在以下部分中描述.大多数参数可用于任意顺序除了BindingResult这个唯一的参数例外.下一节中将会描述. not ...
- SpringMVC注解整理
2019独角兽企业重金招聘Python工程师标准>>> 使用注解之前要开启自动扫描功能 其中base-package为需要扫描的包(含子包). <context:compone ...
- SpringMVC 4.0常用注解
为什么80%的码农都做不了架构师?>>> 注解的出现终结了使用XML配置文件的年代,它让程序拥有更高的可读性,可配置性与灵活性.上一篇介绍的SpringMVC 2.5版本的注解 ...
- 求求你别在用IF ELSE校验参数了
点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 本文看点 前言 验证数据是贯穿所有应用程序层(从表示层到 ...
- SpringMVC控制器接收不了PUT提交的参数的解决方案
找到web项目的web.xml的文件的ContextLoaderListener这个监听器,将这个改为下面的配置: <!-- 解决PUT请求无法提交表单数据的问题 --> <filt ...
- 帮你梳理springboot所有常用注解
文章目录 1.springmvc注解 1. @RestController.@ResponseBody.@Controller 2. @RequestMapping.@GetMapping.@Post ...
- Android 对okhttp的封装
不废话,需求:根据服务器API封装网络请求,怎么办? 简单封装okhttp的get,post,put,delete请求: PersistentCookieJar cookieJar = new Per ...
- android okhttp使用cookie请求
今天,简单讲讲Android的http使用cookie请求. 现在,做一个功能,出现一个奇怪现象,就是老是登陆成功后,发送请求获取消息,老是提示我没有登陆.我自己都不知道是什么原因,这个也是我对网络通 ...
最新文章
- FaaS、PaaS和无服务器体系结构的优势
- js控制select数据绑定下拉列表
- 也跟90后小朋友聊聊
- 数据结构 【实验7 二叉树基本操作】
- Pytest高级进阶之Fixture
- apache开源项目--nutch
- 【学亮IT手记】Ajax跨域问题精讲--jQuery解决跨域操作
- C#基于RabbitMQ实现客户端之间消息通讯实战演练
- 记一次PLC和脉冲型伺服电机的接线方法_20210915
- ipv6单播地址包括哪两种类型_IPV6详细讲解
- java微信获取素材列表_微信公众号开发之获取素材列表并保存
- GDK动态代理原理分析
- C# VS2017中Windows窗体更改图标
- AG6202-MAQ|安格AG6202|HDMI转VGA方案|AG安格设计方案
- vue+Element中append-to-body的使用
- 互联网公司logo logo制作
- 两天碾转两个学校办卡地推
- 集成学习之 如何进行多样性增强
- 博客管理系统-软件测试分析报告
- hive 本地模式 远程模式操作