本文主要是介绍SpringBoot 获取请求参数的常用注解及用法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
《SpringBoot获取请求参数的常用注解及用法》SpringBoot通过@RequestParam、@PathVariable等注解支持从HTTP请求中获取参数,涵盖查询、路径、请求体、头、C...
SpringBoot 提供了多种注解来方便地从 HTTP 请求中获取参数
以下是主要的注解及其用法:
1.@RequestParam
用于获取查询参数(URL 参数),适用于 GET 请求或 POST 表单提交。
@GetMapping("/user") public String getUser(@RequestParam("id") Long userId) { return "User ID: " + userId; } // 可选参数,设置默认值 @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; } // 当变量名与方法参数名相同时可省略 @GetMapping("/article/{slug}") public String getArticle(@PathVariable String slug) { return "Article: " + slug; }
3.@RequestBody
用于获取请求体中的 jsON/XML 数据,通常用于 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) China编程{ return "Sessjavascription ID: " + sessionId; }
6.@ModelAttribute
用于绑定请求参数到模型对象,适用于表单提交。
@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. 获取所有参数
@RequestParam Map获取所有查询参数
@GetMapping("/params") public String getAllParams(@RequestParam Map<String, String> allParams) { return "All params: " + allParams.toString(); }
@RequestParam MultiValueMap获取可能有多个值的参数
@GetMapping("/multiParams") public String getMultiParams(@RequestParam MultiValueMap<String, String> params) { return "Multi params:android " + params.toString(); }
10. 参数绑定到对象
SpringBoot 支持自动将请求参数绑定到 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&China编程;age=25
- 大多数注解都有
required
和defaultValue
属性可以配置 - 对于复杂嵌套对象,SpringBoot 也能自动绑定
- 参数名称默认会与方法参数名匹配,除非在注解中指定
- 可以通过配置
spring.mvc.hiddenmethodhttp://www.chinasem.cn.filter.enabled=true
来支持 PUT/DELETE 等方法的表单提交
到此这篇关于SpringBoot 获取请求参数的常用注解的文章就介绍到这了,更多相关SpringBoot 请求参数注解内容请搜索编程China编程(www.chinasem.cn)以前的文章或继续浏览下面的相关文章希望大家以后多多支持China编程(www.chinasem.cn)!
这篇关于SpringBoot 获取请求参数的常用注解及用法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!