关于 java:验证 Spring-MVC 命令的最敏捷方法是什么(加速服务器端的验证实现)? (Spring-MVC)

What's the most AGILE APPROACH to validate Spring-MVC command (speeds up validation implementation on server side) ? (Spring-MVC)

我正在开始一个新的 Spring-MVC 项目。验证是任何项目中的重要功能。这样,我看到了很多方法如下:

  • Spring验证器接口

这听起来像是 Struts 1.x 验证。在我看来,它并不敏捷。

  • 共享验证器

我觉得比Validator接口好

  • 基于注解的 bean 验证(Spring 模块)

它看起来很敏捷,但我不知道它是否支持基于集合的属性

那么,在您看来,验证 Spring-MVC 命令最敏捷的方法是什么?为什么?考虑许多特性,例如基于集合的属性、自定义验证等。如果您知道/使用 Spring-MVC 中的另一种方法,请随时分享。

问候,


"Agile" 对不同的人意味着不同的东西 :-)

也就是说,如果您将 Hibernate 用作 ORM,那么 Hibernate Validator 非常方便,因为它允许您一次性指定您的约束并将(其中一些)它们传播到数据库,在您的业务层中工作并在您的 UI 中工作层。此外,4.0 beta 实现了 JSR 303,这很可能成为未来验证的标准方法。

Validator 3.1 在自动验证元素集合中的约束方面确实存在某些问题,但它相当容易修补和/或解决问题(已经在那里,已经完成,现在可以完美运行)。还没有迁移到 4.0 测试版,所以我不知道这是否已修复。

它绝对是可扩展的——您可以轻松编写自己的约束。


如何实现 Spring Validator 不敏捷?您可以自己输入验证逻辑。这有多难?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
public void validate(Object target, Errors errors) {

    ValidationUtils.rejectIfEmptyOrWhitespace(errors,"email",
    "error.blank.email","Email address is required.");

    ValidationUtils.rejectIfEmptyOrWhitespace(errors,"name",
    "error.blank.name","Name is required");

    ValidationUtils.rejectIfEmptyOrWhitespace(errors,"phone",
    "error.blank.phone","Phone is required");

    ValidationUtils.rejectIfEmptyOrWhitespace(errors,"question",
    "error.blank.question","Question is required");
}

非常敏捷!