SAStruts/セッション管理

SAStruts/セッション管理

何かの値をセッション管理して持ちまわる方法

セッション管理したい情報の入れ物の作成

セッションで管理したい情報を入れるための塊のクラスを作る。

ポイント・・・

  • アノテーションでセッション管理したいという旨の印をつける
  • セッションに詰め込むためにシリアル化する必要があるのでSerializableインタフェースもつける
  • テストでモックとして使われることを考慮してgetterをそれぞれ作成しておく
/**
 * この塊をセッションで管理したい
 *
 */
@Component(instance=InstanceType.SESSION)
public class HogePiyo implements Serializable{
    private static final long serialVersionUID = 1L;
    public long id;
    public String name;
    public int age;
    public long getId(){
        return id;
    }
    public String getName(){
        return name;
    }
    public int getAge(){
        return age;
    }
}

これでこのオブジェクトが自動で作成されDIコンテナの管理下に入る

セッション管理された情報を引き出す

Actionクラスのプロパティとして、このように指定しておけば、DIコンテナが勝手にセッションから復元してくれる。

@Resource
protected HogePiyo hogePiyo;

これは実は Action 以外からでも引き出すことは出来るのだが、外部入力と捉えて、Action で引き出して Service に渡すような流れに設計したほうがよいだろう。

タグ

java/sastruts/session_control.txt · 最終更新: 2017-09-26 18:34 by ore