Я реализовал свою проверку списка пользовательских классов, как указано в этом сообщение. Для справки здесь мой код выглядит так
class TopDtoForm {
@NotEmpty
private String topVar;
private List<DownDto> downVarList;
//getter and setter
}
class DownDto {
private Long id;
private String name;
//getter and setter
}
@Component
public class TopDtoFormValidator implements Validator {
@Override
public boolean supports(Class<?> clazz) {
return TopDtoForm.class.equals(clazz);
}
@Override
public void validate(Object target, Errors errors) {
TopDtoForm topDtoForm = (TopDtoForm) target;
for(int index=0; index<topDtoForm.getDownVarList().size(); index++) {
DownDto downDto = topDtoForm.getDownVarList().get(index);
if(downDto.getName().isEmpty()) {
errors.rejectValue("downVarList[" + index + "].name", "name.empty");
}
}
}
}
Таким образом, даже я отправляю пустой результат привязки имени с ошибкой 0. Я проверил с помощью topVar, и он отлично работает. Мой вопрос: нужно ли мне делать какие-либо другие настройки, чтобы использовать этот валидатор?
Спасибо
@Valid
? Если да, просто добавьте вTopDtoForm
свой список@Valid
и добавьте@NotEmpty
кDownDto
. Spring подтвердит это просто отлично - person kamil   schedule 16.09.2014