【问题标题】:Manually call Hibernate URL validator in spring-boot在 spring-boot 中手动调用 Hibernate URL 验证器
【发布时间】:2016-10-17 15:24:54
【问题描述】:

我正在使用 spring-boot 1.4.0 和 hibernate-validator 5.2.0。我有一个模型,其中包含自定义验证器内的自定义验证器我想检查属性值是否是一个有效的 URL,我需要在休眠中调用 URLValidator 但没有运气。谁能指导我解决这个问题

CustomValidator.java

@Component
public class BookValidator extends GenericValidator<Book,    ConstraintValidatorContext> implements ConstraintValidator<ValidBooks,  List<Book>> {


public BookValidator() {
    addValidators();
}

private void addValidators() {
 getValidators().add((book, context) -> {
        boolean isValid = book.getUrl(); //here i want to check against Hibernate URL validator 
        if (!isValid) {
            context.disableDefaultConstraintViolation();
            context
                    .buildConstraintViolationWithTemplate("Book URL should be valid!")
                    .addConstraintViolation();
        }
        return isValid;
    });
}
@Override
public void initialize(ValidBooks constraintAnnotation) {
}
}

如何检查 URL 是否有效 boolean isValid = book.getUrl(); 使用休眠URLValidator?

【问题讨论】:

    标签: spring hibernate validation hibernate-mapping hibernate-validator


    【解决方案1】:

    这行得通:

    AnnotationDescriptor<URL> descriptor = new AnnotationDescriptor<URL>( URL.class ); 
    URL url = AnnotationFactory.create(descriptor);
    URLValidator urlValidator = new URLValidator();
    urlValidator.initialize(url);
    
    boolean isValid = urlValidator.isValid(book.getUrl(), context);
    

    【讨论】:

      猜你喜欢
      • 2017-04-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多