SpringMVC中RequestParam注解的简单理解

 更新时间:2022年03月14日 09:39:44   作者:Splaying  
@RequestMapping RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上,下面这篇文章主要给大家介绍了关于SpringMVC中RequestParam注解的简单理解,需要的朋友可以参考下

1、前言

作用:主要用于对前端请求的参数进行一些约束,包括参数名不匹配问题、是否必须、默认值!

这个注解非常简单,准确的说应该是MVC中除了Controller之外最简单的注解。

@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;

}

虽然有四个属性实际上就三个,name属性和value属性一个意思,相互起别名跟对方一样。

Target的元注解约束这个注解只能使用在参数上,Retention元注解表示这个注解的保存时间这里表示可以在运行时JVM反射加载到!

2、name/value属性

这两个属性是当前后端参数不匹配时进行前后端参数转换,即前端 - name/value - 后端参数!

一旦加了设置name/value表示这个参数必须传递,否则400错误

这种做法很鸡肋,不匹配直接照着前端改就行,有点画蛇添足。

@RequestMapping("/hello2")
public String get2(@RequestParam("a") String args, Model model){
    model.addAttribute("value", args);
    return "hello";
}

3、required属性

这个属性是搭配name/value一起使用的,默认不指定情况下是true。

上文中发现一旦设置了name/value表示这个参数必须要有,而required可以设置为false表示这个参数可有可无!

@RequestMapping("/hello3")
public String get3(@RequestParam(name = "a", required = false) String args, Model model){
    model.addAttribute("value", args);
    return "hello";
}

4、defaultValue属性

表示在没有传递参数的的情况下的该参数使用的默认值。

一般搭配required=false一起使用!如果required=true必须指定那还需要默认值干啥?

@RequestMapping("/hello4")
public String get4(@RequestParam(name = "a", defaultValue = "这是默认值", required = false) String args, Model model){
    model.addAttribute("value", args);
    return "hello";
}

总结

到此这篇关于SpringMVC中RequestParam注解的文章就介绍到这了,更多相关SpringMVC RequestParam注解内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • idea数据库驱动下载失败的问题及解决

    idea数据库驱动下载失败的问题及解决

    这篇文章主要介绍了idea数据库驱动下载失败的问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • Java Swing实现的定制TextField功能示例

    Java Swing实现的定制TextField功能示例

    这篇文章主要介绍了Java Swing实现的定制TextField功能,结合实例形式分析了java swing组件TextField相关属性功能与设置操作技巧,需要的朋友可以参考下
    2018-01-01
  • Java CharacterEncodingFilter过滤器的理解和配置案例详解

    Java CharacterEncodingFilter过滤器的理解和配置案例详解

    这篇文章主要介绍了Java CharacterEncodingFilter过滤器的理解和配置案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • 基于java开发之系统托盘的应用

    基于java开发之系统托盘的应用

    本篇文章介绍了,基于java开发之系统托盘的应用。需要的朋友参考下
    2013-05-05
  • 通过springboot+mybatis+druid配置动态数据源

    通过springboot+mybatis+druid配置动态数据源

    这篇文章主要介绍了通过springboot+mybatis+druid配置动态数据源,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,,需要的朋友可以参考下
    2019-06-06
  • 简单实现Java版学生管理系统

    简单实现Java版学生管理系统

    这篇文章主要为大家详细介绍了简单实现Java版学生管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-06-06
  • Spring事务相关问题解决方案

    Spring事务相关问题解决方案

    这篇文章主要介绍了Spring事务相关问题解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • SpringBoot Java后端实现okhttp3超时设置的方法实例

    SpringBoot Java后端实现okhttp3超时设置的方法实例

    Okhttp的使用没有httpClient广泛,网上关于Okhttp设置代理的方法很少,下面这篇文章主要给大家介绍了关于SpringBoot Java后端实现okhttp3超时设置的相关资料,需要的朋友可以参考下
    2021-10-10
  • Spring中AOP概念与两种动态代理模式原理详解

    Spring中AOP概念与两种动态代理模式原理详解

    AOP是面向切面编程的技术,AOP基于IoC基础,是对OOP的有益补充,流行的AOP框架有Sping AOP、AspectJ,这篇文章主要给大家介绍了关于Spring中AOP概念与两种动态代理模式原理的相关资料,需要的朋友可以参考下
    2021-10-10
  • Java 实战项目之疫情人员流动管理系统详解

    Java 实战项目之疫情人员流动管理系统详解

    读万卷书不如行万里路,只学书上的理论是远远不够的,只有在实战中才能获得能力的提升,本篇文章手把手带你用Java实现一个疫情人员流动管理系统,大家可以在过程中查缺补漏,提升水平
    2021-11-11

最新评论