一、源碼展示
@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;
}
@GetMapping("/findById")
public ResultBean byid(@RequestParam(defaultValue = "1",required = false,/*value = "ss",*/name = "ls") Integer id){
List<Customers> all = customersService.findById(id);
return ResultBean.ok(all);
}
二、說明
2.1 @RequestParam,對于參數入參,這個注解可以不必須有,但隻能比對和你定義的入參,完全一樣的名稱,對應則比對,不對應就不比對。
2.2 required ,是否必須,預設為 true,也就是說,當@RequestParam存在時,是預設required = true條件的,@RequestParam不存在時,傳回 2.1 的解釋。
2.3 defaultValue ,設定初始值,一般和required = false一起使用,如果不傳值,則使用預設值。
2.4 value ,和name,一樣,給變量起别名,一一對應于前端傳的屬性名,映射到後端接口變量名,有時前端無法按要求傳給你你所希望的變量名,這個就發揮用處了。
2.5 name ,和value一樣,給變量起别名,兩個同時存在時,通路時就會出錯。