SpringBoot?獲取請求參數(shù)的常用注解及用法
SpringBoot 提供了多種注解來方便地從 HTTP 請求中獲取參數(shù)
以下是主要的注解及其用法:
1.@RequestParam
用于獲取查詢參數(shù)(URL 參數(shù)),適用于 GET 請求或 POST 表單提交。
@GetMapping("/user")
public String getUser(@RequestParam("id") Long userId) {
return "User ID: " + userId;
}
// 可選參數(shù),設(shè)置默認值
@GetMapping("/search")
public String search(@RequestParam(value = "q", required = false, defaultValue = "") String query) {
return "Search: " + query;
}2.@PathVariable
用于獲取 URL 路徑中的變量。
@GetMapping("/user/{id}")
public String getUser(@PathVariable("id") Long userId) {
return "User ID: " + userId;
}
// 當變量名與方法參數(shù)名相同時可省略
@GetMapping("/article/{slug}")
public String getArticle(@PathVariable String slug) {
return "Article: " + slug;
}3.@RequestBody
用于獲取請求體中的 JSON/XML 數(shù)據(jù),通常用于 POST/PUT 請求。
@PostMapping("/user")
public String createUser(@RequestBody User user) {
return "Created user: " + user.getName();
}4.@RequestHeader
用于獲取 HTTP 請求頭中的值。
@GetMapping("/info")
public String getInfo(@RequestHeader("User-Agent") String userAgent) {
return "User Agent: " + userAgent;
}5.@CookieValue
用于獲取 HTTP 請求中的 Cookie 值。
@GetMapping("/home")
public String home(@CookieValue("JSESSIONID") String sessionId) {
return "Session ID: " + sessionId;
}6.@ModelAttribute
用于綁定請求參數(shù)到模型對象,適用于表單提交。
@PostMapping("/register")
public String register(@ModelAttribute User user) {
return "Registered: " + user.getName();
}7.@RequestPart
用于處理 multipart/form-data 請求中的文件上傳。
@PostMapping("/upload")
public String uploadFile(@RequestPart("file") MultipartFile file) {
return "Uploaded: " + file.getOriginalFilename();
}8. 直接使用 Servlet API
SpringBoot 也支持直接使用 Servlet API 對象:
@GetMapping("/example")
public String example(HttpServletRequest request, HttpServletResponse response) {
String param = request.getParameter("param");
return "Parameter: " + param;
}9. 獲取所有參數(shù)
@RequestParam Map獲取所有查詢參數(shù)
@GetMapping("/params")
public String getAllParams(@RequestParam Map<String, String> allParams) {
return "All params: " + allParams.toString();
}@RequestParam MultiValueMap獲取可能有多個值的參數(shù)
@GetMapping("/multiParams")
public String getMultiParams(@RequestParam MultiValueMap<String, String> params) {
return "Multi params: " + params.toString();
}10. 參數(shù)綁定到對象
SpringBoot 支持自動將請求參數(shù)綁定到 Java 對象:
@GetMapping("/filter")
public String filterUsers(UserFilter filter) {
return "Filtering by: " + filter.toString();
}
// UserFilter 類示例
public class UserFilter {
private String name;
private Integer age;
// getters and setters
}注意事項
請求示例:/filter?name=John&age=25
- 大多數(shù)注解都有
required和defaultValue屬性可以配置 - 對于復雜嵌套對象,SpringBoot 也能自動綁定
- 參數(shù)名稱默認會與方法參數(shù)名匹配,除非在注解中指定
- 可以通過配置
spring.mvc.hiddenmethod.filter.enabled=true來支持 PUT/DELETE 等方法的表單提交
到此這篇關(guān)于SpringBoot 獲取請求參數(shù)的常用注解的文章就介紹到這了,更多相關(guān)SpringBoot 請求參數(shù)注解內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Spring 定時任務@Scheduled 注解四大參數(shù)用法解析
本文詳細介紹了Spring框架中使用@Scheduled注解實現(xiàn)定時任務的方法,重點講解了fixedRate、fixedDelay、cron和initialDelay這四個參數(shù)的用法,并通過實例代碼進行了詳細說明,感興趣的朋友一起看看吧2025-01-01
Java線程池ThreadPoolExecutor的使用及其原理詳細解讀
這篇文章主要介紹了Java線程池ThreadPoolExecutor的使用及其原理詳細解讀,線程池是一種多線程處理形式,處理過程中將任務添加到隊列,然后在創(chuàng)建線程后自動啟動這些任務,線程池線程都是后臺線程,需要的朋友可以參考下2023-12-12
IDEA2020.1構(gòu)建Spring5.2.x源碼的方法
這篇文章主要介紹了IDEA2020.1構(gòu)建Spring5.2.x源碼的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-10-10
深入講解java線程與synchronized關(guān)鍵字
Java 中多線程的同步依靠的是對象鎖機制,synchronized關(guān)鍵字就是利用了封裝對象鎖來實現(xiàn)對共享資源的互斥訪問。下面這篇文章主要介紹了java線程與synchronized關(guān)鍵字的相關(guān)資料,需要的朋友可以參考下。2017-03-03

