4

Play 2.0 では、次の方法で (アノテーションを介して) 検証が行われたリクエスト バインディングを取得できます。

ABCForm abcForm=(ABCForm)form(ABCForm.class).bindFromRequest().get();

私が抱えている問題は、フォームの値をトリミングした後に検証を行いたいということです。では、 play 2.0 でバインディングの後に検証を延期または呼び出す方法はありますか?

4

2 に答える 2

1

バインディングと検証が組み合わされています。したがって、私が知る限り、バインディング後の検証は不可能です。ただしvalidate()、値を検証する前に値をトリミングするメソッドを作成できます。例えば:

public class User {

    public String name;

    public String validate() {
        name.trim
        if(name == "") {
            return "Name is required";
        }
        return null;
    }
}

フォームをバインドすると、validate()メソッドが呼び出されます。したがって、データが有効であることを確認できますが、エラーがForm.Fieldオブジェクトに自動的に追加されることはありません。だからそれは確かに素晴らしい解決策です。

PlayのGoogleグループでは、フォームの検証についてもかなりの議論があります。したがって、バインディング/検証の問題について詳しく知りたい場合は、https://groups.google.com/forum/# !searchin/play-を読むことをお勧めします。フレームワーク/%5B2.0%5D$20検証

于 2012-04-17T13:06:01.773 に答える
0

検証前に値を変更する必要がある場合。フィールドのセッターを作成し、そこでトリミングを行うことができます。

于 2012-04-20T15:02:21.857 に答える