У меня есть список строк, которые должны быть определенного формата. Мне нужно вернуть сообщение об ошибке со строками, которые не имеют указанного формата. Как это сделать с весенней проверкой (я использую валидатор гибернации). Аннотация:
@Documented
@Retention(RUNTIME)
@Target({FIELD, METHOD})
@Constraint(validatedBy = HostsValidator.class)
public @interface HostsConstraint {
String message();
Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default {};
}
Реализация:
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;
}
}
}
}
Использование:
public class Test {
@HostsConstraint(message="Invalid string ")
private List<String> hosts;
}
Использование validatedValue
даст весь список.