【Struts2】セッション

1.SessionAwareインタフェースを実装(implements)する
2.sessionをmapで定義しsetterをoverrride
3.putでsessionに格納する

public class SampleAction implements SessionAware{

	private Map<String, Object> session;

	public String execute() {
		//格納
		session.put("val", "aaa");
		//変更
		session.replace("val", "iii");
		//削除
		session.remove("val");
		return SUCCESS;
	}

	@Override
	public void setSession(Map<String, Object> session) {
		this.session = session;
	}
}

jspで使用

<s:property value="#session.val" />

sessionの破棄

//これが必要↓
import org.apache.struts2.dispatcher.SessionMap;

	((SessionMap)getSession()).invalidate();

セッションの有効期限設定
デフォルトは1800秒(30分)

public class BaseAction implements ServletRequestAware{
	private HttpServletRequest servletRequest;

	//タイムアウトを10秒に設定
	servletRequest.getSession().setMaxInactiveInterval(10);

	public void setServletRequest(HttpServletRequest servletRequest) {
		this.servletRequest = servletRequest;
	}
}