バリデーター
Validator自体はInterceptorインターフェースを実装しているのでインターセプターでもあり、設定方法はインターセプターと全く同じです。以下は Validator の例です。
public class LoginValidator extends Validator {
protected void validate(Controller c) { validateRequiredString("name", "nameMsg", "Please enter your username"); passMsg" , "パスワードを入力してください");
}
protected void handleError(Controller c) { c.keepPara("name");
c.render("login.html");
}
}
protected void validate(Controller c) { validateRequiredString("name", "nameMsg", "Please enter your username"); passMsg" , "パスワードを入力してください");
}
protected void handleError(Controller c) { c.keepPara("name");
c.render("login.html");
}
}
protected void validator (Controller c) メソッドでは、バックエンド検証用の validateXxx(…) 一連のメソッドを呼び出すことができます。 protected void handleError(Controller c) メソッドでは、c.keepPara(…) メソッドを呼び出すことができます。送信された値をページに返して元の入力値を保持するには、 c.render(…) メソッドを呼び出して対応するページを返すこともできます。 handleError(Controller c) は検証が失敗した場合にのみ呼び出されることに注意してください。
上記のコードの handleError メソッド内の keepXxx メソッドは、データをページ フォームに保持し、ページに戻すために使用されます。これにより、検証に合格したフォーム フィールドにユーザーが繰り返し入力する必要がなくなります。モデル オブジェクトが渡されると、keepModel メソッドを使用して、ユーザーが入力したデータを保持できます。