關(guān)于@RequestParam的主要用法詳解
1. 基本用法
- 作用:從請(qǐng)求中提取查詢(xún)參數(shù)或表單數(shù)據(jù)。
- 語(yǔ)法:
@RequestParam("參數(shù)名") 數(shù)據(jù)類(lèi)型 參數(shù)名
- 示例:
@GetMapping("/greet") public String greet(@RequestParam("name") String name) { return "Hello, " + name + "!"; }
- 請(qǐng)求:
/greet?name=John
- 響應(yīng):
Hello, John!
2. 默認(rèn)值
- 作用:當(dāng)參數(shù)不存在時(shí),使用默認(rèn)值。
- 語(yǔ)法:
@RequestParam(value = "參數(shù)名", defaultValue = "默認(rèn)值") 數(shù)據(jù)類(lèi)型 參數(shù)名
- 示例:
@GetMapping("/greet") public String greet(@RequestParam(value = "name", defaultValue = "Guest") String name) { return "Hello, " + name + "!"; }
- 請(qǐng)求:
/greet
- 響應(yīng):
Hello, Guest!
3. 可選參數(shù)
- 作用:允許參數(shù)不存在。
- 語(yǔ)法:
@RequestParam(value = "參數(shù)名", required = false) 數(shù)據(jù)類(lèi)型 參數(shù)名
- 示例:
@GetMapping("/greet") public String greet(@RequestParam(value = "name", required = false) String name) { return "Hello, " + (name != null ? name : "Guest") + "!"; }
- 請(qǐng)求:
/greet
- 響應(yīng):
Hello, Guest!
4. 綁定到對(duì)象
- 作用:將多個(gè)參數(shù)綁定到一個(gè)對(duì)象中。
- 示例:
public class User { private int id; private String name; // Getter 和 Setter 方法 } @GetMapping("/user") public String getUser(User user) { return "User ID: " + user.getId() + ", Name: " + user.getName(); }
- 請(qǐng)求:
/user?id=1&name=John
- 響應(yīng):
User ID: 1, Name: John
5. 綁定到集合或數(shù)組
- 作用:將多個(gè)同名參數(shù)綁定到集合或數(shù)組中。
- 示例:
@GetMapping("/hobbies") public String getHobbies(@RequestParam("hobby") List<String> hobbies) { return "Hobbies: " + String.join(", ", hobbies); }
- 請(qǐng)求:
/hobbies?hobby=Reading&hobby=Traveling
- 響應(yīng):
Hobbies: Reading, Traveling
6. 綁定到 Map
- 作用:將動(dòng)態(tài)參數(shù)綁定到
Map
中。 - 示例:
@GetMapping("/params") public String getParams(@RequestParam Map<String, String> params) { return "Params: " + params.toString(); }
- 請(qǐng)求:
/params?name=John&age=25
- 響應(yīng):
Params: {name=John, age=25}
7. 處理復(fù)雜類(lèi)型
- 作用:支持日期、枚舉等復(fù)雜類(lèi)型的轉(zhuǎn)換。
- 示例:
@GetMapping("/date") public String getDate(@RequestParam("date") @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate date) { return "Date: " + date.toString(); }
- 請(qǐng)求:
/date?date=2023-10-01
- 響應(yīng):
Date: 2023-10-01
???????總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Spring?MVC文件請(qǐng)求處理MultipartResolver詳解
這篇文章主要介紹了Spring?MVC文件請(qǐng)求處理詳解:MultipartResolver,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-11-11Springboot?格式化LocalDateTime的方法
這篇文章主要介紹了Springboot格式化LocalDateTime的相關(guān)知識(shí),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-05-05IDEA Error:java: 無(wú)效的源發(fā)行版: 17錯(cuò)誤
本文主要介紹了IDEA Error:java: 無(wú)效的源發(fā)行版: 17錯(cuò)誤,這個(gè)錯(cuò)誤是因?yàn)槟腎DEA編譯器不支持Java 17版本,您需要更新您的IDEA編譯器或者將您的Java版本降級(jí)到IDEA支持的版本,本文就來(lái)詳細(xì)的介紹一下2023-08-08在java中由類(lèi)名和方法名字符串實(shí)現(xiàn)其調(diào)用方式
這篇文章主要介紹了在java中由類(lèi)名和方法名字符串實(shí)現(xiàn)其調(diào)用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-09-09Java中LinkedList數(shù)據(jù)結(jié)構(gòu)的詳細(xì)介紹
這篇文章主要介紹了Java中LinkedList,Linked List 是 java.util 包中 Collection 框架的一部分,文中提供了詳細(xì)的代碼說(shuō)明,需要的朋友可以參考下2023-05-05SpringBoot3 響應(yīng)式網(wǎng)絡(luò)請(qǐng)求客戶(hù)端的實(shí)現(xiàn)
本文主要介紹了SpringBoot3 響應(yīng)式網(wǎng)絡(luò)請(qǐng)求客戶(hù)端的實(shí)現(xiàn),文章詳細(xì)闡述了如何使用SpringBoot3的網(wǎng)絡(luò)請(qǐng)求客戶(hù)端進(jìn)行HTTP請(qǐng)求和處理響應(yīng),并提供了示例代碼和說(shuō)明,具有一定的參考價(jià)值,感興趣的可以了解一下2023-08-08Idea Project文件目錄不見(jiàn)了,只剩External Libraries和imi文件的解決
這篇文章主要介紹了Idea Project文件目錄不見(jiàn)了,只剩External Libraries和imi文件的解決方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-08-08java實(shí)現(xiàn)堆的操作方法(建堆,插入,刪除)
下面小編就為大家分享一篇java實(shí)現(xiàn)堆的操作方法(建堆,插入,刪除),具有很好的參考價(jià)值,希望對(duì)大家有所幫助2017-12-12