SpringBoot中怎么实现请求参数校验

avatar
作者
筋斗云
阅读量:0

在Spring Boot中,可以使用JSR 303规范中的注解来实现请求参数的校验。具体步骤如下:

  1. 在Controller类中的请求方法参数前添加校验注解,比如@Validated和@NotBlank等。
@RestController @RequestMapping("/api") @Validated public class UserController {          @PostMapping("/user")     public ResponseEntity<String> createUser(@Valid @RequestBody UserDto userDto) {         // 处理请求参数         return ResponseEntity.ok("User created successfully");     } } 
  1. 创建一个DTO类,用来封装请求参数,并在DTO类的属性上添加校验注解。
public class UserDto {      @NotBlank(message = "Name is mandatory")     private String name;      @Email(message = "Email should be valid")     private String email;      // getter and setter } 
  1. 在Controller类中定义一个全局异常处理器,用来捕获校验失败的异常,并返回错误信息。
@ControllerAdvice public class GlobalExceptionHandler {      @ExceptionHandler(MethodArgumentNotValidException.class)     @ResponseStatus(HttpStatus.BAD_REQUEST)     @ResponseBody     public ResponseEntity<String> handleValidationException(MethodArgumentNotValidException ex) {         BindingResult result = ex.getBindingResult();         List<String> errorMessages = result.getAllErrors().stream()                 .map(DefaultMessageSourceResolvable::getDefaultMessage)                 .collect(Collectors.toList());         return ResponseEntity.badRequest().body(String.join(", ", errorMessages));     } } 

这样,当请求参数校验失败时,会返回相应的错误信息。Spring Boot会自动校验请求参数,并在校验失败时抛出MethodArgumentNotValidException异常,全局异常处理器会捕获该异常并返回错误信息。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!