0
我想創建自己的Annatotation約束,因爲我擁有一個包含由逗號分隔的電子郵件列表的字符串。重新使用驗證程序
我按照文檔從這裏:http://docs.jboss.org/hibernate/validator/4.1/reference/en-US/html/validator-customconstraints.html
在項目中,我使用Hibernate驗證作爲供應商對於Bean驗證。我注意到Hibernate提供了一個@Email
約束。
是否可以從我自己的Validator類中調用org.hibernate.validator.constraints.impl.EmailValidator :: isValid?
我做了如下及其工作:
public class EmailsValidator implements ConstraintValidator<Emails, String> {
private EmailValidator emailValidator = new EmailValidator();
@Override
public void initialize(Emails constraintAnnotation) {
}
@Override
public boolean isValid(String value, ConstraintValidatorContext context) {
System.out.println("EmailsValidator::isValid");
if (value == null || value.isEmpty()) {
return true;
}
final String[] emails = value.split(",\\s*");
for (String anEmail : emails) {
System.out.println("anEmail = " + anEmail);
if (!emailValidator.isValid(anEmail, context)) {
return false;
}
}
return true;
}
}
它是最有效的方法,使嗎?
再見。