Ich habe eine Liste von Zeichenfolgen, die von einem bestimmten Format sein sollten. Ich muss die Fehlermeldung mit den Strings zurückgeben, die nicht das angegebene Format haben. Wie man dies mit der Federvalidierung macht (Ich benutze den Hibernate Validator). Die Anmerkung:Spring MVC Validierung für die Liste und melden den ungültigen Wert
@Documented
@Retention(RUNTIME)
@Target({FIELD, METHOD})
@Constraint(validatedBy = HostsValidator.class)
public @interface HostsConstraint {
String message();
Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default {};
}
Die Umsetzung:
public class HostsValidator implements ConstraintValidator<HostsConstraint, List<String>>{
@Override
public void initialize(OriginHostsConstraint constraintAnnotation) {
}
@Override
public boolean isValid(List<String> strings, ConstraintValidatorContext context) {
for (String s : strings) {
if (!s.matches("[0-9]+") {
//How do I say: Invalid string <s> ?
return false;
}
}
}
}
Die Nutzung:
public class Test {
@HostsConstraint(message="Invalid string ")
private List<String> hosts;
}
validatedValue
Verwendung wird die gesamte Liste geben.