0

私はspring-boot 1.4.0とhibernate-validator 5.2.0を使用しています。私はカスタムバリデーター内にカスタムバリデーターを含むモデルを持っています。プロパティー値が有効なURLかどうかをチェックしたいのですが、私はURLValidatorを呼び出す必要がありますが、幸運はありません。私は、URLが有効な1 ブールのisValid = book.getUrl()であるかどうかを確認することができますどのようにCustomValidator.javaspring-bootでHibernate URLバリデーターを手動で呼び出す

@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) { 
} 
} 

ハイバネーションURLValidatorを使用していますか?

答えて

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); 
+0

これは質問や答えますか? –

関連する問題