@RequestParam注解,加与不加的区别

@RequestParam

  • 申请参数 绑定到 控制器办法参数
  • SpringMVC提供的接管一般参数的注解

源码:

@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 "nttnttnue000ue001ue002nttttn";
}

是name属性 还是value属性,看前辈的博客说两者皆可,开发中二者都能取得参数,我还没有测试过。

@RequestParam(value="参数名",required="true/false",defaultValue="")
/*

  • value:参数名
  • required:设置是否蕴含该参数,默认是true,示意该申请门路中必须蕴含该参数,如果不蕴含就会报400谬误
  • defaultValue:设置默认参数值,如果设置了该值,required=true就会生效,主动为false,如果没有传该参数,就应用默认值

/

加与不加

应用不应用该注解,都能够获取参数,但二者还是有区别的。

  • 不应用@RequestParam注解时,

    • 申请门路中不跟 参数,获取的参数为null;
  • 应用@RequestParam 注解时,

    • 申请门路中不跟 参数,页面会报错,返回400
    • 如果设置了required="false",就和不应用@RequestParam注解一样了

注解@RequestParam如何应用加与不加的区别