|
对于最新稳定版本,请使用 Spring Framework 7.0.6! |
@RequestBody
您可以使用 @RequestBody 注解,通过 HttpMessageConverter 将请求体读取并反序列化为 Object。
以下示例使用了 @RequestBody 参数:
-
Java
-
Kotlin
@PostMapping("/accounts")
public void handle(@RequestBody Account account) {
// ...
}
@PostMapping("/accounts")
fun handle(@RequestBody account: Account) {
// ...
}
你可以将 @RequestBody 与 jakarta.validation.Valid 或 Spring 的 @Validated 注解结合使用,这两种方式都会触发标准的 Bean Validation 验证。
默认情况下,验证错误会抛出 MethodArgumentNotValidException 异常,该异常会被转换为 400(BAD_REQUEST)响应。或者,你也可以通过在控制器方法中添加 Errors 或 BindingResult 参数来本地处理验证错误,
如下例所示:
-
Java
-
Kotlin
@PostMapping("/accounts")
public void handle(@Valid @RequestBody Account account, BindingResult result) {
// ...
}
@PostMapping("/accounts")
fun handle(@Valid @RequestBody account: Account, result: BindingResult) {
// ...
}