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)