2012-02-13 108 views
2

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

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

谢谢

P.S:这将不胜感激,如果有人可以帮助一些更好的客户端验证方法(而不是Java脚本等)。

回答

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的示例项目。

+0

得到它。所以这个验证框架在与GWT组件一起使用时是有效的。除了JS和Struts验证之外,您还可以推荐其他任何好的和最新的客户端验证技术吗? – 2012-02-14 04:39:40

+0

客户端?如何在不使用JS的情况下在客户端上运行?即使struts或类似的东西也会使用一些服务器代码来写出JS到页面来验证它 - 我猜你已经完成了一个你想添加验证的JSP,而不是从一个新的框架开始(wicket,tapestry ,玩,但有很多其他)支持验证。 – 2012-02-14 04:47:11

+0

你猜对了。我有JSP的,并希望添加客户端验证。使用JS这是检查客户端验证的传统方式。因此,我正在检查是否有更有效的现代方式来做到这一点。 – 2012-02-14 05:10:01

1
  1. 对于客户端的数据验证

我使用Putnami Web工具包(PWT)。 该框架符合常见的JSR-303 bean验证注释。

您可以在这个位置找到文档和活生生的例子: http://pwt.putnami.org/#!Validation

  • 对于
  • 我使用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); 
         }