【Spring Boot】3.@RequestParam和@RequestBody的不同&用法示例

本文详细介绍了Spring Boot中@RequestParam和@RequestBody的区别与用法,包括它们处理Content-Type的不同,GET请求的支持,以及各种用法示例,如接收URL参数、JSON对象映射等。
摘要由CSDN通过智能技术生成

1. @RequestParam

该标签用于接受请求头中的参数,该标签配置了四个参数:

public @interface RequestParam {
   

	@AliasFor("name")
	String value() default "";
	
	@AliasFor("value")
	String name() default "";

	boolean required() default true;
	
	String defaultValue() default ValueConstants.DEFAULT_NONE;
}

  • valuename,用来接收请求的参数,与请求参数的 Key 值相互绑定。(注:@AliasFor 表示别名,它可以注解到自定义注解的两个属性上,表示这两个互为别名,也就是说这两个属性其实同一个含义)
  • required,表示该请求参数是否为必须传入,默认为 true,即必须传入。
  • defaultValue,设置请求参数传入为空,或没有传入该参数时,使用的默认值,当然对应 required 参数需要设置为 false。

2. @RequestBody

该标签用于接受请求中的请求体,该标签只有一个参数:

public @interface RequestBody {
   
	boolean required() default true;
}
  • required,与 @RequestParam 标签相同,表示该请求参数是否为必须传入,这里指是否需要传递请求体,默认为 true,即必须传入。

3. 不同点

3.1 处理的请求的 Content-Type 不同

  • @RequestParam 可处理 Content-Type 为 application/x-www-form-urlencoded 编码的内容的请求,Content-Type默认为该属性。@RequestParam 也可用于其它类型的请求,例如:POST、DELETE等请求。
  • @RequestBody 接收的参数是来自 requestBody 中,即请求体。一般用于处理非 Content-Type: application/x-www-form-urlencoded 编码格式的数据,比如:application/json 等
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值