【问题标题】:Can Spring MVC/Hibernate validation be a substitute for Javascript validation?Spring MVC/Hibernate 验证可以替代 Javascript 验证吗?
【发布时间】:2014-07-24 18:36:48
【问题描述】:

我是 Spring MVC 的新手。我遇到了 hibernate-validator 和 Spring 标签提供的验证。我只做了一点 Web 编程 (Perl),我在前端完成了 Javascript 验证,并结合了后端验证来阻止无效数据。

在我看来,使用 Spring MVC 提供的验证,只能在后端进行验证。不同的是,所有验证都必须等到用户提交表单。此外,由于没有前端验证,因此性能可能是一个问题。我要问的是使用 Spring MVC 时表单验证的正确方法是什么。

【问题讨论】:

标签: spring-mvc


【解决方案1】:

仅后端验证有效。虽然仅在客户端上进行验证是行不通的,因为它不安全。

但由于性能的原因,可用性通常会成为后端验证的问题。

您仍然可以通过调用后端 onBlur 在后端动态验证,但现在您的应用程序将前端和后端紧密耦合在一起。像 JSF 这样的框架会这样做,恕我直言,这是一个非常糟糕的主意。

一些框架(也包括 JSF)尝试根据后端的注释在前端自动进行验证。但这只能在您坚持使用有限的一组准备好的注释时才有效,因此同样不能解决问题。

所以我想说:坚持使用基于 javascript 的前端验证和使用您碰巧使用的任何工具进行后端验证的常用方法。其他一切要么受到严重限制,要么很快变得过于复杂。

【讨论】:

    【解决方案2】:

    对不起,但是这里的“正确方法”,对于 all(客户端/服务器)验证,无论编程语言、框架等如何,都是依赖前端 后端验证,因为仅前端是不安全的(阅读herehere 了解更多信息)。

    例如用于前端一些 JS/jQuery 插件,用于后端 SpringMVC/hibernate @Valid-Annotation,并在您的实体上进行相应的检查。如果您不想等到按下提交,请使用 Ajax 调用或类似的方法。 Here 是一个例子(未经测试)

    【讨论】:

    • 我的问题实际上是仅后端验证是否可行。如果必须进行前端验证,那么在哪里使用 标签?
    • 更新了示例链接。我希望这有帮助? :)
    • 感谢您的链接。很有帮助。
    猜你喜欢
    • 2011-07-12
    • 2018-06-20
    • 2015-02-12
    • 2016-12-17
    • 2019-11-08
    • 2012-09-21
    • 1970-01-01
    • 1970-01-01
    • 2013-10-27
    相关资源
    最近更新 更多