0

GWT プロジェクトで入力を DTO に対して検証するために、エディタ フレームワークと一緒に休止状態バリデータを使用しています。

私が抱えている問題は、ユーザーがテキストボックスに文字列を入力していることです。これは整数として検証する必要があります。hibernate-validator アノテーションを適用して自動的に機能させようとしましたが、何かが足りないようです。

私のDTO:

public class MyDto {  
   @Min(value = 1, message = "Radius must be at least 1 meter.")
   private int radius = 100;

   ...
}

GWT IntegerBox を使用して半径の値を読み取っています。これは、-1 などの値を入力すると正しく機能しますが、「hi」などの整数ではない値を入力すると正しく機能しません。

これを検証する唯一の方法は、IntegerBox で getValueOrThrow() を発行し、手動でエラーを設定することです。hibernate-validator アノテーションを直接使用してこれを表現する方法はありませんか?

Integer と @NotNull、@NotEmpty、@Valid を使用してみました。

私の現在のコードは次のようになります。

try {
    radiusBox.getValueOrThrow();
}
catch (final ParseException e) {
    radiusDecorator.setErrorText("Invalid radius value.");
    return;
}

final MyDto dto = editorDriver.flush();
final Set<ConstraintViolation<?>> violations = clientValidator.validate(dto);

if (!violations.isEmpty()) {
    editorDriver.setConstraintViolations(violations)
    return;
}
4

0 に答える 0