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

 更新时间:2021年08月17日 10:07:40   作者: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一样,给变量起别名,两个同时存在时,访问时就会出错。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • java生成随机字符串的两种方法

    java生成随机字符串的两种方法

    这篇文章主要为大家详细介绍了java生成随机字符串的两种方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-10-10
  • Intellij IDEA远程debug教程实战和要点总结(推荐)

    Intellij IDEA远程debug教程实战和要点总结(推荐)

    这篇文章主要介绍了Intellij IDEA远程debug教程实战和要点总结(推荐),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • java解析JSON数据详解

    java解析JSON数据详解

    这篇文章主要介绍了java解析JSON数据详解,具有一定借鉴价值,需要的朋友可以参考下。
    2017-12-12
  • 深入了解Spring中的@Autowired和@Resource注解

    深入了解Spring中的@Autowired和@Resource注解

    Spring中的@Autowired和@Resource注解都可以实现依赖注入,但使用方式、注入策略和适用场景略有不同。本文将深入探讨这两种注解的原理、使用方法及优缺点,帮助读者更好地理解和运用Spring依赖注入机制
    2023-04-04
  • Java8生成时间方式及格式化时间的方法实例

    Java8生成时间方式及格式化时间的方法实例

    这篇文章主要给大家介绍了关于Java8生成时间方式及格式化时间的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • 基于spring+springmvc+hibernate 整合深入剖析

    基于spring+springmvc+hibernate 整合深入剖析

    这篇文章主要介绍了于spring+springmvc+hibernate整合实例,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-10-10
  • maven仓库repositories和mirrors的配置及区别详解

    maven仓库repositories和mirrors的配置及区别详解

    这篇文章主要介绍了maven仓库repositories和mirrors的配置及区别详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • 详解SpringIOC容器相关知识

    详解SpringIOC容器相关知识

    这篇文章主要记录自己在狂神说java中的学习情况,文章里有自己学习的理解和扩展,新手难免有理解偏差或者错误,恳请大佬指正下,需要的朋友可以参考下
    2021-05-05
  • Spring boot实现文件上传功能

    Spring boot实现文件上传功能

    这篇文章主要为大家详细介绍了Spring boot实现文件上传功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-06-06
  • java中Servlet程序下载文件实例详解

    java中Servlet程序下载文件实例详解

    在本篇文章里小编给大家整理的是一篇关于java中Servlet程序下载文件实例内容,有兴趣的朋友们可以学习参考下。
    2021-02-02

最新评论