java - 非 MVC 应用程序中的 Spring 验证

标签 java spring validation annotations

是否可以以与非 MVC 应用程序中的 MVC Controller 中的类似方式验证 POJO 类?

例如:

public class Form {
    @NotNull
    @Size(min = 4, max = 25)
    private String login;
    ...
}

然后:

Form f = new Form();
f.setLogin("login");

现在我想将它传递给某种 validator ,该 validator 将根据注释测试所有字段,就像 MVC 中的 @Valid 一样。

请注意,我想通过注释验证字段。我不想编写所有验证条件,例如 if (login.lenght() < 4 && ....

这可能吗?

最佳答案

您可以使用 Hibernate Validator,它是 Java Bean Validation 规范的实现 - 在 JDK 环境(无 JEE)中工作,如所述 here

Hibernate Validator 允许您添加注释,然后基于该注释运行验证,如下所示:

ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
validator = factory.getValidator();
Set<ConstraintViolation<?>> constraintViolations =
  validator.validate(objectToValidate);

然后您可以检查constraintViolations集合是否有错误。

关于java - 非 MVC 应用程序中的 Spring 验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32724296/

相关文章:

java - 创建静态嵌套类的实例

java - 如何检查变量名是否包含字符串,然后输出字符串变量内容

java - 使用 Nimbus 外观在 JTable 中水平滚动

java - 在 XSD 的限制中指定多个模式

java - MockMvcResultMatchers - jsonPath() 与 content()

java - 在运行时配置生存时间属性

java - 从另一个联接创建的列上的 JoinColumn

javascript - 禁用输入,直到使用 bootstrap-validator 验证先前的输入

javascript - AngularUI Typeahead 两次触发 ng-blur 函数

validation - 是否可以从聚合工厂调用规范进行验证,或者该验证调用是否属于单元测试 (DDD)?