平常我在使用@RequestParam这个时候并没有去查看文档,只是习惯性的标注了一个value和name的值,而且注解也就四个参数值,所以没太在意

@RequestParam 注解内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

@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 "\n\t\t\n\t\t\n\ue000\ue001\ue002\n\t\t\t\t\n";
}

使用示例

1
@RequestParam(name = "param", value = "参数值", required = false, defaultValue = "defaultValue") String param

一直以为注解里面的param必须要和外面的param是一致的,其实是不用的,外面的参数命名可以简单一点

你也可以这样用

1
@RequestParam(name = "param", value = "参数值", required = false, defaultValue = "defaultValue") String p

踩坑提示

如果是配合swagger使用,最好还是依赖swagger的注解,不要过度依赖RequestParam,因为可能会引起不必要的冲突