我一直在试图做一个自定义的验证器,所以我可以对特定的类(java.util.Calendar或CommandItem在这种情况下)使用@NotEmpty注解。但我得到一个异常:扩展@NotEmpty接受其他类
javax.validation.UnexpectedTypeException: No validator could be found for type: com.bla.DocumentCommandItem
现在,我能想到的,为什么它不工作的唯一的事情是,@NotEmpty注解本身声明此:
@Constraint(validatedBy = { })
因此,有与Validator类没有直接关联。但是,它如何验证字符串和集合呢?
这是我的Validator类:
public class DocumentNotEmptyExtender implements ConstraintValidator<NotEmpty,DocumentCommandItem> {
@Override
public void initialize(NotEmpty annotation) {
}
@Override
public boolean isValid(DocumentCommandItem cmdItem, ConstraintValidatorContext context) {
if (!StringUtils.hasText(cmdItem.getId()) && (cmdItem.getFilename() == null || cmdItem.getFilename().isEmpty())) {
return false;
} else {
return true;
}
}
}
这甚至可能吗?
(作为一个侧面说明...我也收到这个异常时我正在我自己的类似注解,但一个神秘消失。)
谢谢!
我已经试过您的解决方案。 XML被加载,但我仍然得到相同的错误。奇怪的事情正在发生,虽然...在启用此软件包的跟踪信息后,在tomcat启动期间,以下两行显示出5次: '[] 10:13:35,670 [main] INFO org.hibernate.validator.xml.ValidationXmlParser - META-INF/validation。找到xml。 [] 10:13:35,694 [main] DEBUG org.hibernate.validator.xml.ValidationXmlParser - 试图打开META-INF/validators.xml的输入流。' – Jinx 2012-02-22 09:17:09
解决了它。其他信息如下。 – Jinx 2012-02-22 10:10:40