我一直在試圖做一個自定義的驗證器,所以我可以對特定的類(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