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 中的另一种方法,请随时分享。
问候,
- 当指代一段代码、一个库或一个 API 时,”敏捷”是什么意思?
- @Jens Schauder 嗨 Jens,我的意思是任何库、API 或其他与验证相关的问题,这些问题通过使用 Spring-MVC 来加速服务器端的验证实现。问候,
“Agile” 对不同的人意味着不同的东西 :-)
也就是说,如果您将 Hibernate 用作 ORM,那么 Hibernate Validator 非常方便,因为它允许您一次性指定您的约束并将(其中一些)它们传播到数据库,在您的业务层中工作并在您的 UI 中工作层。此外,4.0 beta 实现了 JSR 303,这很可能成为未来验证的标准方法。
Validator 3.1 在自动验证元素集合中的约束方面确实存在某些问题,但它相当容易修补和/或解决问题(已经在那里,已经完成,现在可以完美运行)。还没有迁移到 4.0 测试版,所以我不知道这是否已修复。
它绝对是可扩展的——您可以轻松编写自己的约束。
- @ChssPly76 你好,你在 Spring MVC 中使用成功了吗?问候
- 我将它与 Spring 结合使用,不仅在 UI 层(基于 Spring MVC)中,而且在整个系统中使用。数据库模式是基于验证器注释生成的(例如,文本字段的列长度来自 @Length 而不是通过 @Column 设置),业务层实体使用完全相同的约束,UI 装饰器(如果适用)使用注释他们也是。效果很好。我也有一些自定义验证器。
- 在这里可以找到一个很好的介绍:sleberknight.com/blog/sleberkn/entry/20070910 关于 Hibernate Validator 的六篇深入文章。
如何实现 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”, ValidationUtils.rejectIfEmptyOrWhitespace(errors,“name”, ValidationUtils.rejectIfEmptyOrWhitespace(errors,“phone”, ValidationUtils.rejectIfEmptyOrWhitespace(errors,“question”, |
非常敏捷!
- 如果您查看示例中的代码,您会注意到这 4 个 ValidationUtils 调用之间的唯一区别是字段名称及其重复两次(计算消息的三次,但无论如何都应该本地化)。使用 Hibernate Validator 你只需在你的 bean 中用 @NotEmpty 注释适当的 getter – 你就完成了。我相信这就是 OP 所说的”敏捷”。请注意,我对 Spring Validator 没有任何反对意见。
来源:https://www.codenong.com/1246618/