Validation GWT JSR 303客户端验证
我正在开发一个带有Spring后端的GWT应用程序,该后端使用JSR303验证。应用程序可以脱机并使用浏览器HTML5/Gears数据库 实现客户机验证的最佳方式是什么?到目前为止,我已经找到了gwt验证框架(),但它似乎不再处于活动状态 谢谢 更新:Validation GWT JSR 303客户端验证,validation,gwt,bean-validation,Validation,Gwt,Bean Validation,我正在开发一个带有Spring后端的GWT应用程序,该后端使用JSR303验证。应用程序可以脱机并使用浏览器HTML5/Gears数据库 实现客户机验证的最佳方式是什么?到目前为止,我已经找到了gwt验证框架(),但它似乎不再处于活动状态 谢谢 更新: 有一个新的GWT官方项目支持JSR303bean验证()。在我看来,一旦项目足够成熟,就应该这样做 我还没有使用它,但是GWT2.1包含了一些验证支持 查看ShowCase。我们的验证框架是一个客户端和服务器端数据输入验证框架。它的角色是确保从客
有一个新的GWT官方项目支持JSR303bean验证()。在我看来,一旦项目足够成熟,就应该这样做 我还没有使用它,但是GWT2.1包含了一些验证支持
查看ShowCase。我们的验证框架是一个客户端和服务器端数据输入验证框架。它的角色是确保从客户端传递到服务器的数据符合业务规则 验证框架使用GWT验证项目,该项目实现了“JSR303:Bean验证”规范 其思想是用JSR303注释来修饰数据传输对象(DTO)类和字段,以描述它们的有效性规则
<inherits name="com.google.gwt.validation.Validation" />
在服务器端使用
com.google.gwt.validation.server.ServerValidator
要正确设置它需要一点工作,但是它工作得很好。GWT 2.5为此提供了一个新功能: 它使用Hibernate验证程序 1) 您需要扩展AbstractGwtValidatorFactory并应用您的bean,例如:
public final class SampleValidatorFactory extends AbstractGwtValidatorFactory {
/**
* Validator marker for the Validation Sample project. Only the classes and groups listed
* in the {@link GwtValidation} annotation can be validated.
*/
@GwtValidation(Person.class)
public interface GwtValidator extends Validator {
}
@Override
public AbstractGwtValidator createValidator() {
return GWT.create(GwtValidator.class);
}
}
2) 然后将其添加到gwt.xml中:
<inherits name="org.hibernate.validator.HibernateValidator" />
<replace-with
class="yourpackage.SampleValidatorFactory">
<when-type-is class="javax.validation.ValidatorFactory" />
</replace-with>
3) 验证你的bean
Validator validator = Validation.buildDefaultValidatorFactory().getValidator();
Set<ConstraintViolation<Person>> violations = validator.validate(person);
Validator Validator=Validation.buildDefaultValidatorFactory().getValidator();
设置冲突=验证程序。验证(个人);
谢谢您的回答。该示例显示了如何创建手动验证用户输入的自定义单元格。我要避免的是必须在客户端和服务器上写两次验证。@Javier,如果您足够关心数据的有效性,可以在任何地方执行验证,那么您绝对应该在服务器端进行验证。客户端验证只是一个很好的功能,可以节省用户的时间和精力。这正是我想要的!我想我在答案中寻找的链接是,对吗?支持JSR 303的GWT官方项目运行良好,因为GWT2.4不需要您实现IValidatable,您可以在这里找到所需的一切:。客户端和服务器端在域对象或DTO上都有一个注释。这是一个死项目吗?我想用它,但不知道我是否能相信它!?gwt validation@gwt-validation.googlecode.com并没有死。事实上,在过去一年左右的时间里,出现了某种程度的复苏。这样做的目的是不需要代表实现者进行任何特殊的实现或操作。哎呀,我看到这个问题已经用一个类似于这个答案的链接进行了更新。
Validator validator = Validation.buildDefaultValidatorFactory().getValidator();
Set<ConstraintViolation<Person>> violations = validator.validate(person);