基于@RequestParam name和value属性的区别

网友投稿 1049 2022-12-18

基于@RequestParam name和value属性的区别

基于@RequestParam name和value属性的区别

目录基于name和value属性的区别RequestParam内部有4个参数@RequestParam,参数是否必须传的问题一、源码展示二、说明2.1 @RequestParam2.2 required2.3 defaultValue2.4 value2.5 name

基于name和value属性的区别

RequestParam内部有4个参数

1、String name;

2、String value;

3、boolean required;

4、String defaultValue;

源码中name的别名是value,value的别名是name,

所以说name和value两个属性基本是等价的,都是获取从前台传入的参数

@RequestParam,参数是否必须传的问题

一、源ceyHaPT码展示

@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 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,一样,给变量起别名ceyHaPT,一一对应于前端传的属性名,映射到后端接口变量名,有时前端无法按要求传给你你所希望的变量名,这个就发挥用处了。

2.5 name

和value一样,给变量起别名,两个同时存在时,访问时就会出错。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:解析springboot整合谷歌开源缓存框架Guava Cache原理
下一篇:spring bean.xml文件p标签使用报错的解决
相关文章

 发表评论

暂时没有评论,来抢沙发吧~