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"); } |
非常敏捷!