关于 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 中的另一种方法,请随时分享。

问候,

  • 当指代一段代码、一个库或一个 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”,
    “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”);
}

非常敏捷!

  • 如果您查看示例中的代码,您会注意到这 4 个 ValidationUtils 调用之间的唯一区别是字段名称及其重复两次(计算消息的三次,但无论如何都应该本地化)。使用 Hibernate Validator 你只需在你的 bean 中用 @NotEmpty 注释适当的 getter – 你就完成了。我相信这就是 OP 所说的”敏捷”。请注意,我对 Spring Validator 没有任何反对意见。


来源:https://www.codenong.com/1246618/

微信公众号
手机浏览(小程序)

Warning: get_headers(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed in /mydata/web/wwwshanhubei/web/wp-content/themes/shanhuke/single.php on line 57

Warning: get_headers(): Failed to enable crypto in /mydata/web/wwwshanhubei/web/wp-content/themes/shanhuke/single.php on line 57

Warning: get_headers(https://static.shanhubei.com/qrcode/qrcode_viewid_9266.jpg): failed to open stream: operation failed in /mydata/web/wwwshanhubei/web/wp-content/themes/shanhuke/single.php on line 57
0
分享到:
没有账号? 忘记密码?