我想使用验证而不是网页控制器。假设我有一个人类
public class Person {
private String name;
private String surname;
//getters and setters
...
}
我还有一个验证器类:
public class PersonValidator implements Validator {
@Override
public boolean supports(Class<?> clazz) {
return Person.class.equals(clazz);
}
@Override
public void validate(Object target, Errors errors) {
ValidationUtils.rejectIfEmptyOrWhitespace(errors, "name", "name.empty");
ValidationUtils.rejectIfEmptyOrWhitespace(errors, "surname",
"surname.empty");
}
}
如何在控制台应用程序中使用此验证器?或者验证仅适用于春季的Web应用程序?
答案 0 :(得分:1)
您可以在控制台应用程序中使用验证工具。您只需致电ValidationUtils.invokeValidator(validator, object, errors)
即可。您主要担心的是有一个合适的Errors实例。您最终可能会使用BeanPropertyBindingResult或继承AbstractErrors。
您可能知道,但您应该参考Spring reference和javadoc。
粗略猜测未经测试的代码:
Person person = new Person();
Errors errors = new BeanPropertyBindingResult(person, "person");
ValidationUtuls.invokeValidator(new PersonValidator(), person, errors);
if (errors.hasErrors()) { ... }
出于兴趣,为什么使用Spring验证优先于javax.validation?我发现使用javax.validaton / JSR-303 API通常更容易。 Hibernate Validator是参考实现,Spring integrates with JSR-303。