verletzt wird habe ich den folgenden Code für meine benutzerdefinierte Constraint:keine Fehlermeldung, wenn benutzerdefinierte Einschränkung
@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;
}
Und der Validator-Klasse:
public class MinMaxValidator implementiert 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;
}
}
jetzt, wenn ich meine Entitybean mit meiner Annotation annotieren und versuchen, in einem Objekt zu übergeben, die meine Einschränkung mit folgendem Code verletzt:
validator.validate(obj);
es funktioniert, aber es gibt keine Fehlermeldung ... Ist hier etwas fehlt? Wie kann ich es verwalten, die Standardfehlermeldung "MinMax-Einschränkung wurde verletzt" auszugeben?
thx
hallo und danke für deine Antwort. Das Set benötigt einen Typparameter. Setzen Sie> cvs; Der Konstruktor von ConstraintViolationException akzeptiert dies jedoch nicht. (Der Konstruktor ConstraintViolationException (Set >) ist nicht definiert): / –
Moonlit