我有我的自定義約束下面的代碼:當定製約束被違反了任何錯誤消息
@Retention(RetentionPolicy.RUNTIME)
@Target({ ElementType.TYPE, ElementType.FIELD, ElementType.METHOD })
@Constraint(validatedBy = MinMaxValidator.class)
public @interface CheckMinMax{
String message() default "MinMax constraint has been violated";
Class<? extends Payload>[] payload() default {};
Class<?>[] groups() default {};
int min() default 1;
int max() default 10;
}
和驗證器類:
公共類MinMaxValidator實現ConstraintValidator {
int max;
int min;
@Override
public void initialize(CheckMinMax annotation) {
max = annotation.max();
min = annotation.min();
}
@Override
public boolean isValid(Integer value, ConstraintValidatorContext arg1) {
if (value < min || value > max)
return false;
return true;
}
}
現在,當我註釋我的entitybean與我的註釋並試圖在違反我用下面的代碼約束的對象傳遞:
validator.validate(obj);
它的工作原理,但沒有錯誤消息...... 是這裏缺少點什麼? 我如何管理它輸出默認錯誤消息「MinMax約束已被違反」?
THX
喜謝謝爲你的答案。該集合需要一個類型參數。設置> cvs;但ConstraintViolationException的構造函數不接受它。 (構造函數ConstraintViolationException(Set >)未定義):/ –
Moonlit
2012-04-03 22:46:39