在service层验证对JSR303进行验证

论坛 期权论坛 脚本     
匿名技术用户   2020-12-27 13:22   45   0

一般都是在实体类上加上JSR303注解,例如:

public Class People{
@NotBlank
private String name;
}

在Controller中添加@valid或者@validated注解旨在接收到请求时进行JSR303的验证。

@RequestMappint("xxx")
public String get(@Valid People people){
......
}

但是把@Valid或者@Validated注解放在service层,直接调用service的方法是不会进行JSR303验证的。为此,显式的调用就显得尤为重要:

Validator validator = Validation.buildDefaultValidatorFactory().getValidator();
    Set<ConstraintViolation<T>> constraintViolations = validator.validate(想要验证的bean);
    ConstraintViolation<T> constraintViolation = getFirst(constraintViolations, null);
    if (constraintViolation != null) {
      throw new ValidationException(constraintViolation.getMessage());
}

使用javax.validation.Validator即可做到在任何地点显式验证JSR303

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP