Здесь у меня есть образец самого элементарного весового валидатора, который я могу себе представить :-). Поскольку это настольное приложение, я не запускаю контейнер, который должен вызывать проверку в определенные моменты.
Есть ли какая-нибудь утилита для вызова метода проверки так же, как это делает весенний контейнер? Достаточно ли вызывать подтверждение? В этом случае, какова конкретная реализация объекта Errors
, которую я должен пройти для проверки?весенняя проверка в настольном приложении
Вот пример (в основном декоративный):
Во-первых у меня есть класс Person, со свойством Stirng ПгвЬЫата и свойством Строки 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, что просто проверьте, имеет ли лицо не нуль 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)
}
Это первый вопрос я ставлю, возможно, вы можете ответить там: http://stackoverflow.com/questions/9693656/javabeans-validation- in-a-desktop-application/9695098 # comment12334789_9695098. Если вы говорите о JSR 303, это спецификация Java EE, доступная через реализацию Hibernate или Spring 3! – AgostinoX
AgostinoX: BeanValidation - JSR 303. Его используют в JEE, но он также может использоваться в стандартной java. Эталонная импликация - «Hiberante Validator», это НЕ Спящий режим (ORM). Это означает, что вы можете использовать его perferct в автономном приложении. – Ralph
Похоже, что реализация Apache BVal прошла мимо инкубатора, так что это еще одна альтернатива. http://incubator.apache.org/bval/cwiki/2012/02/21/apache-bval-has-graduated-the-incubator.html – ebaxt