您需要在Spring配置中创建一个bean:
@Bean
public MethodValidationPostProcessor methodValidationPostProcessor() {
return new MethodValidationPostProcessor();
}
您应该将@Validated
注释留在控制器上。
而且您需要在MyController
类中使用Exceptionhandler 处理ConstraintViolationException
:
@ExceptionHandler(value = { ConstraintViolationException.class })
@ResponseStatus(value = HttpStatus.BAD_REQUEST)
public String handleResourceNotFoundException(ConstraintViolationException e) {
Set<ConstraintViolation<?>> violations = e.getConstraintViolations();
StringBuilder strBuilder = new StringBuilder();
for (ConstraintViolation<?> violation : violations ) {
strBuilder.append(violation.getMessage() + "\n");
}
return strBuilder.toString();
}
进行这些更改之后,您将在验证成功时看到您的消息。
PS:我只是在您的@Size
验证下尝试过。