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)文章
WIN7系統(tǒng)JavaEE(tomcat7 Eclipse)環(huán)境配置教程(二)
這篇文章主要介紹了WIN7系統(tǒng)JavaEE(java+tomcat7+Eclipse)環(huán)境配置教程,本文重點在于tomcat配置、Eclipse配置,感興趣的小伙伴們可以參考一下2016-06-06
詳解Java編寫算法時如何加快讀寫數(shù)據(jù)速度
這篇文章主要為大家詳細介紹了Java在編寫算法時如何加快讀寫數(shù)據(jù)速度,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下2024-03-03
自帶IDEA插件的阿里開源診斷神器Arthas線上項目BUG調(diào)試
這篇文章主要為大家介紹了自帶IDEA插件阿里開源診斷神器Arthas線上項目BUG調(diào)試,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-06-06
SpringBoot整合Mybatis無法掃描xml文件的解決
這篇文章主要介紹了SpringBoot整合Mybatis無法掃描xml文件的解決操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-12-12
實例講解Java的Spring框架中的AOP實現(xiàn)
這篇文章主要介紹了Java的Spring框架中的AOP實現(xiàn)實例,AOP面向切面編程其實也可以被看作是一個設(shè)計模式去規(guī)范項目的結(jié)構(gòu),需要的朋友可以參考下2016-04-04
springboot+spring?data?jpa實現(xiàn)新增及批量新增方式
這篇文章主要介紹了springboot+spring?data?jpa實現(xiàn)新增及批量新增方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-11-11
類似Object監(jiān)視器方法的Condition接口(詳解)
下面小編就為大家?guī)硪黄愃芆bject監(jiān)視器方法的Condition接口(詳解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-05-05
Java使用itextpdf實現(xiàn)生成PDF并添加圖片,水印和文字
這篇文章主要為大家詳細介紹了Java在使用itextpdf實現(xiàn)生成PDF時如何實現(xiàn)添加圖片,水印和文字等效果,感興趣的小伙伴可以跟隨小編一起學習一下2024-02-02

