springmvc之@RequestParam注解

1. 注解的属性含义

String name;表示绑定请求参数的名称

String value;表示上面的name的别名。

实际上,上面两个名称互为对方的别名。是用谁都可以。

Boolean required;表示参数是否是必须的,如果requiredtrue,则defaultValue的值就没有意义。

String defaultValue;表示参数的默认值。

2.举个栗子

使用案例:如果请求参数中有currentPage参数就把参数值赋值给main()的形参中,
没有的情况下就给main()的形参赋值为1

@RequestMapping("/main")
    public String main(@RequestParam(value="currentPage", defaultValue="1", 
        required=false) int currentPage, Model model) {
} 

3.注解的源码

@AliasFor用来给注解的属性起别名,让使用注解时更加容易理解。

  public @interface RequestParam {
  
   /**
    * Alias for {@link #name}.
    */
   @AliasFor("name")
   String value() default "";
  
   /**
    * The name of the request parameter to bind to.
    * @since 4.2
    */
   @AliasFor("value")
   String name() default "";
  
   /**
    * Whether the parameter is required.
    * <p>Defaults to {@code true}, leading to an exception being thrown
    * if the parameter is missing in the request. Switch this to
    * {@code false} if you prefer a {@code null} value if the parameter is
    * not present in the request.
    * <p>Alternatively, provide a {@link #defaultValue}, which implicitly
    * sets this flag to {@code false}.
    */
   boolean required() default true;
  
   /**
    * The default value to use as a fallback when the request parameter is
    * not provided or has an empty value.
    * <p>Supplying a default value implicitly sets {@link #required} to
    * {@code false}.
    */
   String defaultValue() default ValueConstants.DEFAULT_NONE;


猜你喜欢

转载自blog.csdn.net/qq_36819098/article/details/80055997