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; } }