Как работает вспомогательный метод Spring Validator ValidationUtils?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как работает вспомогательный метод Spring Validator ValidationUtils?

Сообщение Anonymous »

Я новичок в Spring Validator и ознакомился с таким образовательным кодом:

Код: Выделить всё

@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)
Похоже, он жалуется на SingerValidator. не имеет метода получения для поля firstName (что ожидаемо, поскольку это поле должно быть в Singer). code> class)?
Итак, мой вопрос: как работает ValidationUtils.rejectIfEmpty, если он не принимает цель в качестве входных данных?
Как заставить этот код работать?
Я что-то упустил?

Подробнее здесь: https://stackoverflow.com/questions/790 ... tils-works
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»