@RequestBody

@RequestBody 主要用于接收前端通过 POST 请求发送的 JSON 数据。不使用时,可以处理 application/x-www-form-urlencoded 类型的数据。当参数较少时,注解可省略;参数多或接收实体类时,需使用此注解。多个值作为入参时,配合 @RequestParam 注解匹配参数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

@RequestBody是否存在的影响

首先 明确一点是 RequestBody注解的主要作用就是用于接收前端的参数,当我们使用post请求的时候,我们会将参数放在request body中,此时我们就需要在Controller的方法的参数前面加上@RequestBody用来接受到前端传过来的request body中的值。

@PostMapping("/save")
    public Response<?> save(@RequestBody Ince iance){
        return null;
    }

不使用@RequestBody注解时,可以接收Content-Type为application/x-www-form-urlencoded类型的请求所提交的数据,数据格式:aaa=111 b b b = 222 。
f o r m 表 单 提 交 以 及 j Q u e r y 的 bbb=222。form表单提交以及jQuery的bbb=222。form表单提交以及jQuery的.post()方法所发送的请求就是这种类型。

使用@RequestBody注解时,用于接收Content-Type为application/json类型的请求,
数据类型是JSON:{“aaa”:“111”,“bbb”:“222”}

以上内容来源于不同的资料内容。

总结一下就是:

当入参只有一个参数的时候,此时** @RequestBody **的注解是否存在没有必要性,比如:String abcd;
那么前端传参的时候:传入

abcd = "1234";


{
abcd = "1234"
}

二者的区别不是很大。

只有当入参较多,或者是一个实体类入参时,加上该注解,前端以json的形式传参,后台才能接收到。

注意,如果多个值入参,比如:String aaa, String bbb,String ccc,
当以这种形式入参时需要加上**@RequestParam**注解,用于匹配各参数是否能一一对应上。

@RequestParam:将请求参数绑定到你控制器的方法参数上(是springmvc中接收普通参数的注解)

语法:@RequestParam(value=”参数名”,required=”true/false”,defaultValue=””)
 
value:参数名
 
required:是否包含该参数,默认为true,表示该请求路径中必须包含该参数,如果不包含就报错。
 
defaultValue:默认参数值,如果设置了该值,required=true将失效,自动为false,如果没有传该参数,就使用默认值

关于这三者的详解 SpringBoot - @PathVariable/@RequestParam/@RequestBody注解使用详解 可点击跳转

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值