用于java中客户端验证的GWT Validator框架

时间:2012-02-13 10:57:25

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

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

因此我遇到了一个名为GWT Validation Framework的东西,它可以在两侧进行验证。我的JSP很少。我在客户端验证用户填写的数据。但我还没有找到一个如何做到这一点的例子?任何人都可以请相同的启发。

谢谢

P.S:如果有人可以协助一些更好的客户端验证方法(除了java脚本),将不胜感激。

2 个答案:

答案 0 :(得分:2)

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的示例项目以获取某些来源。

答案 1 :(得分:1)

  1. 用于客户端数据验证
  2. 我正在使用 Putnami Web Toolkit (PWT)。 该框架符合公共JSR-303 bean验证注释。

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

    1. 用于服务器端数据验证
    2. 我正在使用 Hibernate的Bean验证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);
              }