【问题标题】:GWT Validator framework for client side validation in java用于 Java 中客户端验证的 GWT Validator 框架
【发布时间】:2012-02-13 10:57:24
【问题描述】:

我一直在研究可以用来在客户端和服务器端验证数据的更好框架。我知道在双方都进行验证很重要。

因此,我遇到了一个叫做 GWT 验证框架的东西,它可以在双方都进行验证。我的 JSP 很少。我在客户端验证了用户填写的数据。但是我还没有找到一个关于如何做到这一点的例子?任何人都可以请同样的启发。

谢谢

P.S:如果有人能提供一些更好的客户端验证方法(java脚本除外),我们将不胜感激。

【问题讨论】:

    标签: java validation jsp gwt client-side-validation


    【解决方案1】:

    GWT 支持将 javax.validation 编译到编译模块中,但如果不实际使用 GWT,它将不会很容易使用。验证机制由 JSR-303 bean 验证提供支持,因此需要在客户端和服务器上查看 bean - 由 jsp 创建的 html 客户端页面是不够的,您需要创建和加载 GWT 模块到页面上。

    在 GWT 中,您编写看起来像 Java 的东西,然后它编译为 JavaScript。 JSR303 支持也被编译为 javascript,因此任何数量的客户端验证都是不够的 - 请参阅 Why is client-side validation not enough? 了解更多说明 - 您的服务器也需要运行验证。

    如果您还没有使用 GWT,那么 GWT 的验证对您的项目没有多大意义。如果您认为这一切都对您有意义,那么就开始使用它吧——查看http://www.gwtproject.org/doc/latest/DevGuideValidation.html 了解更多信息,并查看https://github.com/gwtproject/gwt/tree/master/samples/validation 的示例项目以获取一些来源。

    【讨论】:

    • 知道了。所以这个验证框架在与 GWT 组件一起使用时是有效的。除了 JS 和 Struts 验证之外,你能推荐任何其他好的和最新的客户端验证技术吗?
    • 客户端?不使用JS如何在客户端运行?甚至 struts 之类的东西也会使用一些服务器代码将 JS 写到页面来验证它——我猜你有一个完成的 JSP,你想添加这个验证,而不是从一个新的框架开始(wicket,tapestry ,玩,但还有很多其他的)支持验证。
    • 你猜对了。我有 JSP 并想添加客户端验证。为此使用 JS 是检查客户端验证的传统方式。因此,我正在检查是否有任何更有效和更现代的方法。
    【解决方案2】:
    1. 用于客户端数据验证

    我正在使用 Putnami Web Toolkit (PWT)。 该框架符合 commons JSR-303 bean 验证注解。

    您可以在此位置找到文档和实时示例: http://pwt.putnami.org/#!Validation

    1. 用于服务器端数据验证

    我正在使用 Hibernate 的 Bean Validation JSR-303 参考实现(版本 4.3.2-Final)。

    下面的例子:

    进口:

    import java.util.HashSet;
    import java.util.Set;
    import javax.validation.ConstraintViolation;
    import javax.validation.ConstraintViolationException;
    import javax.validation.Validation;
    import javax.validation.ValidationException;
    import javax.validation.Validator;
    

    代码:

    final Set<ConstraintViolation<BeanToValidate>> violations = validator.validate(form);
            if (!violations.isEmpty()) {
                final Set<ConstraintViolation<?>> constraintViolations = new HashSet<ConstraintViolation<?>>(
                        violations);
                throw new ConstraintViolationException(constraintViolations);
            }
    

    【讨论】:

      猜你喜欢
      • 2012-09-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-18
      • 2014-05-30
      • 2021-06-05
      • 1970-01-01
      相关资源
      最近更新 更多