Spring Boot的Controller如何接收各请求类型的前端传参

GET:只能用 URL,方式用 路径参数查询参数,不能用 body(语义上不允许)。
DELETE:推荐用 URL,方式用 路径参数查询参数,避免用 body(虽然协议未禁止,但兼容性差)。
POST / PUT / PATCH:主要用 body 传数据,也可附加 URL 参数。

1. 路径参数(http://xx.com/a/123)
@GetMapping("detail/{id}")
public Result<User> detail(@PathVariable("id") String id) {
   return Result.success(new User);
}
 
2. 查询参数(form表单数据提交,也用这个接收)(http://xx.com/a?id=123)
@GetMapping("detail")
public Result<User> detail(String id) {// 隐式
   return Result.success(new User);
}
@GetMapping("detail")
public Result<User> detail(@RequestParam String id) {// 显式
   return Result.success(new User);
}
 
3. 查询参数 或 表单数据 自动绑定(http://xx.com/a?id=123&b=2&c=3)
public class UserQuery {
    private String name;
    private String email;
}
@GetMapping("detail")
public Result<User> detail(UserQuery query) {// 隐式
    return Result.success(new User);
}
@GetMapping("detail")
public Result<User> detail(@ModelAttribute UserQuery query) {// 显式
    return Result.success(new User);
}
 
4. 请求体 body
public class User {
    private String name;
    private Integer age;
    private String email;
}
@PostMapping("save")
public Result<Void> save(@RequestBody User user) {
   return Result.success();
}
点击数:9
创建时间:2026-01-16 13:12:02
更新时间:2026-01-16 13:18:43