SAStrutsのチュートリアル3 セッションスコープのActionForm
ActionFormのスコープをデフォルトのrequestから、sessionに変更したい場合のサンプル
JSPは、/view/session以下、ActionはSessionActionになります。
見どころ1(Sessionスコープの指定)
ActionFormに対して、@ComponentアノテーションにてSessionスコープを指定します。
@Component(instance = InstanceType.SESSION) public class SessionForm implements Serializable { private static final long serialVersionUID = 1L;
また、シリアライズするので、Serializableの実装と、serialVersionUIDの定義をします。
見どころ2(検証用アノテーションと、入力値検証の対象メソッド指定)
ActionFormのパラメータに必須チェックが掛かっていますが、
@Required public String first; @Required(target = "goThird") public String second;
secondに対しては、@Required(target=”goThird”)と指定してあり、Actionの実行メソッドのうち、
goThirdメソッドの場合のみ必須であると指定しています。(最初のページでは入力欄ないですもんね)
このように、targetにより、検証対象を指定することが可能です。
実行メソッドでは、validator=true(デフォルト)とし、戻り先をinput=”戻り先.jsp”として指定する必要があります。
見どころ3(セッションスコープのActionFormのクリア)
@Execute(validator = false, removeActionForm = true) public String clear() { return "index.jsp"; }
Actionのclearメソッドで、removeActionForm = trueと指定してあります。
これは実行メソッドが正常終了したタイミングで、セッションスコープのActionFormを削除する指定になります。
(デフォルトはfalse)