基于@RequestParam name和value属性的区别
作者:wenyixicodedog
这篇文章主要介绍了@RequestParam name和value属性的区别,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
基于name和value属性的区别
RequestParam内部有4个参数
- 1、
String name;
- 2、
String value;
- 3、
boolean required;
- 4、
String defaultValue;
源码中name的别名是value,value的别名是name,
所以说name和value两个属性基本是等价的,都是获取从前台传入的参数
@RequestParam,参数是否必须传的问题
一、源码展示
@Target(ElementType.PARAMETER) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface RequestParam { @AliasFor("name") String value() default ""; @AliasFor("value") String name() default ""; boolean required() default true; String defaultValue() default ValueConstants.DEFAULT_NONE; }
这是示例代码
@GetMapping("/findById") public ResultBean byid(@RequestParam(defaultValue = "1",required = false,/*value = "ss",*/name = "ls") Integer id){ List<Customers> all = customersService.findById(id); return ResultBean.ok(all); }
二、说明
2.1 @RequestParam
对于参数入参,这个注解可以不必须有,但只能匹配和你定义的入参,完全一样的名称,对应则匹配,不对应就不匹配。
2.2 required
是否必须,默认为 true,也就是说,当@RequestParam存在时,是默认required = true条件的,@RequestParam不存在时,返回 2.1 的解释。
2.3 defaultValue
设置初始值,一般和required = false一起使用,如果不传值,则使用默认值。
2.4 value
和name,一样,给变量起别名,一一对应于前端传的属性名,映射到后端接口变量名,有时前端无法按要求传给你你所希望的变量名,这个就发挥用处了。
2.5 name
和value一样,给变量起别名,两个同时存在时,访问时就会出错。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
您可能感兴趣的文章:
- @RequestParam注解加与不加有什么区别
- 基于params、@PathVariabl和@RequestParam的用法与区别说明
- @RequestBody,@RequestParam和@Param的区别说明
- 方法参数属性params,@PathVariable和@RequestParam用法及区别
- @PathVariable、@RequestParam和@RequestBody的区别
- @RequestParam 和@RequestBody注解的区别解析
- Springboot中@RequestParam和@PathVariable的用法与区别详解
- Spring中@PathVariable和@RequestParam注解的用法区别
- SpringBoot中@PathVariable、@RequestParam和@RequestBody的区别和使用详解
- @RequestAttribute和@RequestParam注解的区别及说明
- springMVC中@RequestParam和@RequestPart的区别