基于@RequestParam name和value屬性的區(qū)別
基于name和value屬性的區(qū)別
RequestParam內(nèi)部有4個參數(shù)
- 1、
String name; - 2、
String value; - 3、
boolean required; - 4、
String defaultValue;
源碼中name的別名是value,value的別名是name,

所以說name和value兩個屬性基本是等價的,都是獲取從前臺傳入的參數(shù)
@RequestParam,參數(shù)是否必須傳的問題
一、源碼展示
@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
對于參數(shù)入?yún)?,這個注解可以不必須有,但只能匹配和你定義的入?yún)?,完全一樣的名稱,對應(yīng)則匹配,不對應(yīng)就不匹配。
2.2 required
是否必須,默認(rèn)為 true,也就是說,當(dāng)@RequestParam存在時,是默認(rèn)required = true條件的,@RequestParam不存在時,返回 2.1 的解釋。
2.3 defaultValue
設(shè)置初始值,一般和required = false一起使用,如果不傳值,則使用默認(rèn)值。
2.4 value
和name,一樣,給變量起別名,一一對應(yīng)于前端傳的屬性名,映射到后端接口變量名,有時前端無法按要求傳給你你所希望的變量名,這個就發(fā)揮用處了。
2.5 name
和value一樣,給變量起別名,兩個同時存在時,訪問時就會出錯。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
- @RequestParam注解加與不加有什么區(qū)別
- 基于params、@PathVariabl和@RequestParam的用法與區(qū)別說明
- @RequestBody,@RequestParam和@Param的區(qū)別說明
- 方法參數(shù)屬性params,@PathVariable和@RequestParam用法及區(qū)別
- @PathVariable、@RequestParam和@RequestBody的區(qū)別
- @RequestParam?和@RequestBody注解的區(qū)別解析
- Springboot中@RequestParam和@PathVariable的用法與區(qū)別詳解
- Spring中@PathVariable和@RequestParam注解的用法區(qū)別
- SpringBoot中@PathVariable、@RequestParam和@RequestBody的區(qū)別和使用詳解
- @RequestAttribute和@RequestParam注解的區(qū)別及說明
- springMVC中@RequestParam和@RequestPart的區(qū)別
相關(guān)文章
spring cloud feign不支持@RequestBody+ RequestMethod.GET報錯的解決方法
這篇文章主要介紹了spring cloud feign不支持@RequestBody+ RequestMethod.GET報錯的解決方法,需要的朋友可以參考下2018-01-01
將List集合中的map對象轉(zhuǎn)為List<對象>形式實例代碼
這篇文章主要介紹了將List集合中的map對象轉(zhuǎn)為List<對象>形式實例代碼,具有一定借鑒價值,需要的朋友可以參考下2018-01-01
Java模擬死鎖發(fā)生之演繹哲學(xué)家進(jìn)餐問題案例詳解
這篇文章主要介紹了Java模擬死鎖發(fā)生之演繹哲學(xué)家進(jìn)餐問題,結(jié)合具體演繹哲學(xué)家進(jìn)餐問題的案例形式詳細(xì)分析了死鎖機制與原理,需要的朋友可以參考下2019-10-10
SpringBoot+MyBatis+AOP實現(xiàn)讀寫分離的示例代碼
高并發(fā)這個階段,肯定是需要做MySQL讀寫分離的。本文主要介紹了SpringBoot+MyBatis+AOP實現(xiàn)讀寫分離的示例代碼,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-11-11
Druid連接池未關(guān)閉導(dǎo)致內(nèi)存泄漏問題
這篇文章主要介紹了Druid連接池未關(guān)閉導(dǎo)致內(nèi)存泄漏問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-12-12
Java向kettle8.0傳遞參數(shù)的方式總結(jié)
介紹了如何在Kettle中傳遞參數(shù)到轉(zhuǎn)換和作業(yè)中,包括設(shè)置全局properties、使用TransMeta和JobMeta的parameterValue,以及通過EL表達(dá)式獲取參數(shù)值2025-01-01

