Spring 在非 MVC 应用程序中验证
Spring validation in non MVC application
是否可以在非 MVC 应用程序中以类似于在 MVC 控制器中完成的方式验证 POJO class?
例如:
public class Form {
@NotNull
@Size(min = 4, max = 25)
private String login;
...
}
然后:
Form f = new Form();
f.setLogin("login");
现在我想将它传递给某种验证器,它将根据注释测试所有字段,就像@Valid 在 MVC 中所做的那样。
请注意,我想通过注释来验证字段。我不想写所有验证条件,例如 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 集合是否有错误。
是否可以在非 MVC 应用程序中以类似于在 MVC 控制器中完成的方式验证 POJO class?
例如:
public class Form {
@NotNull
@Size(min = 4, max = 25)
private String login;
...
}
然后:
Form f = new Form();
f.setLogin("login");
现在我想将它传递给某种验证器,它将根据注释测试所有字段,就像@Valid 在 MVC 中所做的那样。
请注意,我想通过注释来验证字段。我不想写所有验证条件,例如 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 集合是否有错误。