0
我試圖創建一個類級別的JSR-303驗證定義,檢查其中一個屬性發生在另一個時間之前。因爲這個驗證只對日曆屬性有意義,所以我想知道是否可以在初始化方法中測試屬性類型。類型簽入JSR-303自定義驗證器初始化方法
我的註釋的定義是:
@Target({TYPE, ANNOTATION_TYPE})
@Retention(RUNTIME)
@Constraint(validatedBy = TemporalSequenceValidator.class)
@Documented
public @interface TemporalSequence {
String message() default "{uk.co.zodiac2000.vcms.constraints.TemporalSequence}";
Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default {};
String first();
String second();
}
和驗證器實現:
public class TemporalSequenceValidator implements
ConstraintValidator<TemporalSequence, Object> {
private String firstFieldName;
private String secondFieldName;
@Override
public void initialize(final TemporalSequence constraintAnnotation) {
firstFieldName = constraintAnnotation.first();
secondFieldName = constraintAnnotation.second();
// Is it possible to test type of firstFieldName and
// secondFieldName properties here?
}
@Override
public boolean isValid(final Object value, final ConstraintValidatorContext context) {
// omitted
}
}
這是一個明智的事是什麼?如果是的話,你會建議我使用什麼方法?如果屬性的類型不正確,應該發生什麼樣的行爲?
感謝Gunnar。你的回答幫助我指出了正確的方向。 – 2013-05-04 12:31:10