12

JSR303検証を使用するSpringバックエンドを備えたGWTアプリケーションを開発しています。アプリケーションはオフラインにして、代わりにブラウザのHTML5/Gearsデータベースを使用できます。

クライアント検証を実装するための最良の方法は何ですか?これまでのところ、gwt-validationフレームワーク(http://code.google.com/p/gwt-validation/)を見つけましたが、もうアクティブではないようです。

ありがとう!

アップデート:

JSR 303 Bean Validationをサポートする新しいGWT公式プロジェクトがあります(リンクはこちら)。IMOこれは、プロジェクトが十分に成熟した後の方法です。

4

3 に答える 3

12

私たちの検証フレームワークは、クライアント側とサーバー側のデータ入力検証フレームワークです。その役割は、クライアントからサーバーに渡されるデータのビジネスルールへの準拠を保証することです。

検証フレームワークは、「JSR 303:BeanValidation」仕様を実装するGWTValidationプロジェクトを使用します。

アイデアは、データ転送オブジェクト(DTO)クラスとフィールドをJSR303アノテーションで装飾して、それらの有効性ルールを記述することです。

  1. 各データ転送オブジェクトは、独自の検証アノテーションで装飾する必要があります。
  2. 各サーバー側サービスの実装は、クライアントから受信するデータ転送オブジェクトを検証する必要があります。

クライアント側では、プロジェクトでGWT-Validationを使用するには、GWTモジュールのxmlファイルに(クラスパス上のjarとともに)追加する必要があります。

<inherits name="com.google.gwt.validation.Validation" />

DTOがcom.google.gwt.validation.client.interfaces.IValidatableを実装していることを確認します

クライアント側で検証するには、

com.google.gwt.validation.client.interfaces.IValidator.validateProperty((T) model, propertyName);

サーバー側での使用

com.google.gwt.validation.server.ServerValidator

これを適切に設定するのは少し手間がかかりますが、その後は完全に機能します。

于 2010-11-23T06:53:10.927 に答える
6

GWT 2.5には、このための新機能があります: https ://developers.google.com/web-toolkit/doc/latest/DevGuideValidation

HibernateValidatorを使用します。

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);
于 2012-12-19T07:21:24.167 に答える
4

まだ使用していませんが、GWT2.1にはいくつかの検証サポートが含まれています。

ShowCaseのを確認してください。

于 2010-11-22T20:17:00.173 に答える