Package nablarch.common.web.interceptor
Annotation Interface InjectForm
@Documented
@Target(METHOD)
@Retention(RUNTIME)
@Interceptor(Impl.class)
@Published
public @interface InjectForm
フォームをリクエストスコープに設定する
Interceptor
。
本インターセプタでは次の2つの機能を提供する。
バリデーションや初期化処理を行ったフォームをリクエストスコープに設定する
本インターセプタは業務アクションハンドラに次のように実装する。上記のような@InjectForm(form = UserForm.class, prefix = "form", validate = "register")
@OnError(type = ApplicationException.class, path = "forward://registerForm.html") public HttpResponse handle(HttpRequest req, ExecutionContext ctx) { UserForm form = ctx.getRequestScopedVar("form"); // 以下、省略 }
@InjectForm
アノテーションが指定されたメソッドは、
メソッド実行前に以下の処理順でフォームが生成され、リクエストスコープに設定される。
-
指定のvalidationStrategyに従って、バリデーションを実行し、フォームを生成する。
-
バリデーションエラーが発生した場合は
ApplicationException
を送出する。
-
バリデーションエラーが発生した場合は
-
initialize()
属性が指定されていれば、初期化処理を実行する。 - デフォルトコンストラクタでフォームを生成する。
- 指定の初期化メソッドを実行する。
- バリデーションを実行して生成したフォームから初期化したフォームへ値をコピーする。
-
生成したフォームを
name()
属性の名前でリクエストスコープに設定する。
指定されたバリデーションエンジンでバリデーションを行う
validationStrategyという名前でコンポーネントを定義することでバリデーションエンジンを指定できる。
//指定例 (Bean Validation)
<component name="validationStrategy"
class="nablarch.core.validation.ee.BeanValidationStrategy" />
デフォルトではNablarchValidationStrategy
が使用される。
- Author:
- kawasima, Kiyohito Itoh
-
Nested Class Summary
-
Required Element Summary
-
Optional Element Summary
Modifier and TypeOptional ElementDescription初期化メソッド。フォームをリクエストスコープに設定する際に使用する変数名。(デフォルトは"form")フォームに設定するパラメータのプレフィックス。(デフォルトは空文字)バリデーション対象メソッド。Class<?>[]
Bean Validationのグループ。
-
Element Details
-
form
Class<? extends Serializable> form対象のフォームクラス。(必須属性)
-
-
-
prefix
String prefixフォームに設定するパラメータのプレフィックス。(デフォルトは空文字)- Default:
- ""
-
name
String nameフォームをリクエストスコープに設定する際に使用する変数名。(デフォルトは"form")- Default:
- "form"
-
initialize
String initialize初期化メソッド。対象のフォームクラスに以下のシグネチャでインスタンスメソッドとして実装する。
public void <メソッド名>(HttpRequest request, ExecutionContext context)
初期化メソッドは、フォームの初期値(固定値または画面遷移時に復元する入力値)を設定する際に使用する。- Default:
- ""
-
validate
String validateバリデーション対象メソッド。ValidateFor
で設定した文字列を指定する。- Default:
- ""
-
validationGroup
Class<?>[] validationGroupBean Validationのグループ。- Default:
- {}
-