@Validated @RequestBody 同时使用校验失败
时间: 2023-10-05 16:11:50 浏览: 115
@RequestBody与@Validated使用时校验失效.md
5星 · 资源好评率100%
当同时使用 `@Validated` 和 `@RequestBody` 注解时,Spring Boot 会自动对请求体进行校验。如果校验失败,Spring Boot 会抛出 `MethodArgumentNotValidException` 异常。
你可以通过在控制器方法中添加 `@ExceptionHandler` 注解来捕获该异常,然后自定义返回信息。例如:
```java
@RestControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(MethodArgumentNotValidException.class)
public ResponseEntity<?> handleValidationExceptions(MethodArgumentNotValidException ex) {
List<String> errors = ex.getBindingResult()
.getAllErrors()
.stream()
.map(DefaultMessageSourceResolvable::getDefaultMessage)
.collect(Collectors.toList());
return ResponseEntity.badRequest().body(errors);
}
}
```
上面的代码会将所有校验失败的错误信息以列表的形式返回给客户端。你也可以根据自己的需求来自定义返回信息。
阅读全文