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注解内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341