カスタム制約には次のコードがあります。
@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;
}
そして Validator クラス:
public class 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;
}
}
今、エンティティビーンに注釈を付けて、次のコードで制約に違反するオブジェクトを渡そうとすると:
validator.validate(obj);
動作しますが、エラー メッセージは表示されません。デフォルトのエラーメッセージ「MinMax 制約に違反しています」を出力するにはどうすればよいですか?
どうも