Код: Выделить всё
@Component("singerValidator")
public class SingerValidator implements Validator {
@Override
public boolean supports(Class clazz) {
return Singer.class.equals(clazz);
}
@Override
public void validate(Object target, Errors errors) {
ValidationUtils.rejectIfEmpty(errors, "firstName", "firstName.empty");
}
}
Код: Выделить всё
Exception in thread "main" org.springframework.beans.NotReadablePropertyException: Invalid property 'firstName' of bean class \[com.example.spring.tutorial.demo.ch10.validators.SingerValidator\]: Bean property 'firstName' is not readable or has an invalid getter method: Does the return type of the getter match the parameter type of the setter?
at org.springframework.beans.AbstractNestablePropertyAccessor.getPropertyValue(AbstractNestablePropertyAccessor.java:627)
at org.springframework.beans.AbstractNestablePropertyAccessor.getPropertyValue(AbstractNestablePropertyAccessor.java:617)
at org.springframework.validation.AbstractPropertyBindingResult.getActualFieldValue(AbstractPropertyBindingResult.java:105)
at org.springframework.validation.AbstractBindingResult.getFieldValue(AbstractBindingResult.java:225)
at org.springframework.validation.ValidationUtils.rejectIfEmpty(ValidationUtils.java:172)
at org.springframework.validation.ValidationUtils.rejectIfEmpty(ValidationUtils.java:115)
at com.example.spring.tutorial.demo.ch10.validators.SingerValidator.validate(SingerValidator.java:18)
at org.springframework.validation.ValidationUtils.invokeValidator(ValidationUtils.java:89)
at org.springframework.validation.ValidationUtils.invokeValidator(ValidationUtils.java:56)
at com.example.spring.tutorial.demo.ch10.Demo.main(Demo.java:28)
Итак, мой вопрос: как работает ValidationUtils.rejectIfEmpty, если он не принимает цель в качестве входных данных?
Как заставить этот код работать?
Я что-то упустил?
Подробнее здесь: https://stackoverflow.com/questions/790 ... tils-works
Мобильная версия