在SpringBoot中,可以使用JSR303规范中的注解来实现请求参数的校验
在SpringBoot中,可以使用JSR303规范中的注解来实现请求参数的校验。具体步骤如下:
- 在Controller类中的请求方法参数前添加校验注解,比如@Validated和@NotBlank等。
@RestController
@RequestMapping("/api")
@Validated
publicclassUserController{
@PostMapping("/user")
publicResponseEntity<String>createUser(@Valid@RequestBodyUserDtouserDto){
//处理请求参数
returnResponseEntity.ok("Usercreatedsuccessfully");
}
}
publicclassUserDto{
@NotBlank(message="Nameismandatory")
privateStringname;
@Email(message="Emailshouldbevalid")
privateStringemail;
//getterandsetter
}
@ControllerAdvice
publicclassGlobalExceptionHandler{
@ExceptionHandler(MethodArgumentNotValidException.class)
@ResponseStatus(HttpStatus.BAD_REQUEST)
@ResponseBody
publicResponseEntity<String>handleValidationException(MethodArgumentNotValidExceptionex){
BindingResultresult=ex.getBindingResult();
List<String>errorMessages=result.getAllErrors().stream()
.map(DefaultMessageSourceResolvable::getDefaultMessage)
.collect(Collectors.toList());
returnResponseEntity.badRequest().body(String.join(",",errorMessages));
}
}
这样,当请求参数校验失败时,会返回相应的错误信息。SpringBoot会自动校验请求参数,并在校验失败时抛出MethodArgumentNotValidException异常,全局异常处理器会捕获该异常并返回错误信息。
版权声明
本文仅代表作者观点,不代表博信信息网立场。