SpringBoot 获取请求参数的常用注解及用法
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) {
return "Session 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: " + 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&age=25
- 大多数注解都有
required和defaultValue属性可以配置 - 对于复杂嵌套对象,SpringBoot 也能自动绑定
- 参数名称默认会与方法参数名匹配,除非在注解中指定
- 可以通过配置
spring.mvc.hiddenmethod.filter.enabled=true来支持 PUT/DELETE 等方法的表单提交
到此这篇关于SpringBoot 获取请求参数的常用注解的文章就介绍到这了,更多相关SpringBoot 请求参数注解内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
WIN7系统JavaEE(tomcat7 Eclipse)环境配置教程(二)
这篇文章主要介绍了WIN7系统JavaEE(java+tomcat7+Eclipse)环境配置教程,本文重点在于tomcat配置、Eclipse配置,感兴趣的小伙伴们可以参考一下2016-06-06
自带IDEA插件的阿里开源诊断神器Arthas线上项目BUG调试
这篇文章主要为大家介绍了自带IDEA插件阿里开源诊断神器Arthas线上项目BUG调试,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2022-06-06
SpringBoot整合Mybatis无法扫描xml文件的解决
这篇文章主要介绍了SpringBoot整合Mybatis无法扫描xml文件的解决操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2020-12-12
springboot+spring data jpa实现新增及批量新增方式
这篇文章主要介绍了springboot+spring data jpa实现新增及批量新增方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2021-11-11
Java使用itextpdf实现生成PDF并添加图片,水印和文字
这篇文章主要为大家详细介绍了Java在使用itextpdf实现生成PDF时如何实现添加图片,水印和文字等效果,感兴趣的小伙伴可以跟随小编一起学习一下2024-02-02


最新评论