Здесь у меня есть образец самого базового пружинного валидатора, который я могу себе представить :-).Поскольку это настольное приложение, я не запускаю контейнер, который должен вызывать validate в определенные моменты.
Есть ли какая-либо утилита для вызова метода validate так же, как это делает контейнер Spring?Или вызова валидации достаточно?В этом случае, какова конкретная реализация Errors
объекта, который мне нужно передать для проверки?
Вот пример (в основном декоративный):
Сначала у меня есть класс Person со свойством Stirng firstName и String secondName:
public static class Person {
public static final String PROP_FIRSTNAME = "firstName";
String firstName;
public static final String PROP_SECONDNAME = "secondName";
String secondName;
public String getFirstName() {return firstName;}
public void setFirstName(String firstName) {this.firstName = firstName;}
public String getSecondName() {return secondName;}
public void setSecondName(String secondName) {this.secondName = secondName;}
}
Тогда у меня есть PersonValidator, который просто проверяет, имеет ли Person ненулевое firstName:
public static class PersonValidator implements Validator {
public boolean supports(Class<?> clazz) {
return Person.class.isAssignableFrom(clazz);
}
public void validate(Object target, Errors errors) {
ValidationUtils.rejectIfEmpty(errors, Person.PROP_FIRSTNAME , "First name must be ");
}
}
Хорошо, теперь проблема: как его использовать?
public static void main(String [] args) {
Person p = new Person();
PersonValidator v = new PersonValidator();
//HOW TO PERFORM VALIDATION?
//v.validate(p, null)
}