SpringMVC中RequestParam注解的简单理解

网友投稿 676 2022-10-21

SpringMVC中RequestParam注解的简单理解

SpringMVC中RequestParam注解的简单理解

目录1、前言2、name/value属性3、required属性4、defaultValue属性总结

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错误。

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

@RequOdoFPJyazMestMapping("/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", reqhttp://uired = false) String args, Model model){

model.OdoFPJyazMaddAttribute("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";

}

总结

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

上一篇:【BPM架构】Camunda BPM 最佳实践
下一篇:【IT运营管理】MITRE 企业工程
相关文章

 发表评论

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