Play 2.0 では、次の方法で (アノテーションを介して) 検証が行われたリクエスト バインディングを取得できます。
ABCForm abcForm=(ABCForm)form(ABCForm.class).bindFromRequest().get();
私が抱えている問題は、フォームの値をトリミングした後に検証を行いたいということです。では、 play 2.0 でバインディングの後に検証を延期または呼び出す方法はありますか?
Play 2.0 では、次の方法で (アノテーションを介して) 検証が行われたリクエスト バインディングを取得できます。
ABCForm abcForm=(ABCForm)form(ABCForm.class).bindFromRequest().get();
私が抱えている問題は、フォームの値をトリミングした後に検証を行いたいということです。では、 play 2.0 でバインディングの後に検証を延期または呼び出す方法はありますか?
バインディングと検証が組み合わされています。したがって、私が知る限り、バインディング後の検証は不可能です。ただし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検証。
検証前に値を変更する必要がある場合。フィールドのセッターを作成し、そこでトリミングを行うことができます。