9.SpringBoot Web请求参数绑定方法
请求路径
// 请求参数绑定
@GetMapping("/users/{id}")
public User getUser(@PathVariable Long id) {// ... }
// @PathVariable 带名称 - 当方法参数名与路径变量名不一致时
@GetMapping("/users/{userId}")
public User getUser(@PathVariable("userId") Long id) {// ...
}
// 多参数
@GetMapping("/users/{userId}/orders/{orderId}")
public Order getOrder(@PathVariable Long userId, @PathVariable Long orderId) {// ...
}
// Map接收所有参数
@GetMapping("/users/{userId}/orders/{orderId}")
public Order getOrder(@PathVariable Map<String, String> pathVars) {// ...
}
请求参数
// 请求参数接收
@GetMapping("/users")
public List<User> getUsers(@RequestParam int page, @RequestParam int size) {// ...
}
//带有默认值
@GetMapping("/users")
public List<User> getUsers(@RequestParam(defaultValue = "1") int page,@RequestParam(defaultValue = "10") int size) {// ...
}
//可选参数
@GetMapping("/users")
public List<User> getUsers(@RequestParam(required = false) String name) {// ...
}
// Map接收全部参数
@GetMapping("/users")
public List<User> getUsers(@RequestParam Map<String, String> params) {// ...
}
@GetMapping("/users")
//对象绑定
public List<User> getUsers(UserQuery query) {// query 对象会自动从请求参数绑定
}
请求体
@PostMapping("/users")
public User createUser(@RequestBody User user) {// ...
}
请求头
// 某个头参数
@GetMapping("/users")
public List<User> getUsers(@RequestHeader("Authorization") String auth) {// ...
}
//全部头参数
@GetMapping("/users")
public List<User> getUsers(@RequestHeader Map<String, String> headers) {// ...
}
//对象绑定头参数
@GetMapping("/users")
public List<User> getUsers(@RequestHeader HttpHeaders headers) {// ...
}
其他,spring 自动识别并注入
@GetMapping("/example")
public String example(HttpServletRequest request,HttpServletResponse response,HttpSession session,Principal principal,Locale locale,InputStream inputStream,Reader reader,OutputStream outputStream,Writer writer) {// ...
}