2011年11月7日月曜日

[Seasar2][SAStruts][アノテーション]executeアノテーション(input等)について

@Execute(input = "index.jsp")と記述した場合、「エラーが起きたらinput.jspに遷移する」という意味になる。
@Executeアノテーションでは、デフォルトでvalidator = trueとなるため、バリデーションの結果がNGだった場合に、遷移先を指定しておく必要がある。
遷移先のページで<html:errors/>と記述しておくと、バリデーションのエラーメッセージを出力できる。
このとき表示されるエラーメッセージは、application_ja.propertiesファイルに記述しておくことで変えることが可能である。
(googleで@Executeアノテーションを調べると出てくる)

フォームクラスで必須入力項目に@Requiredを付けることで、入力がない場合にエラーにすることができる。
@Required(target = "onClickGo")のように指定することで、onClickGoメソッドが呼ばれた場合だけ必須入力項目と扱う、ということもできる。
桁数チェック等の他のバリデーションについてもアノテーションで対応可能である。
まとめると、次の通り。

1. フォームクラスに画面入力項目を定義する。
2. 入力必須項目には@Requiredなどのアノテーションを付けることで、バリデーションが可能となる。
3. アクションクラスのメソッドで@Execute(validator = false)を指定しなければバリデーションが有効となる。
4. バリデーションが有効な場合、@Execute(input = "xxx.jsp")で指定したjspが、エラー時に飛ぶJSPとなる。
5. JSPファイル内に<html:errors/>と記述しておくと、エラーを表示できる。
6. エラーメッセージはapplication_ja.propertiesを変更したり、追加したりすると変えられる。

0 件のコメント:

コメントを投稿