Skip to content

Instantly share code, notes, and snippets.

@A-pZ
Last active December 16, 2015 18:09
Show Gist options
  • Save A-pZ/5476148 to your computer and use it in GitHub Desktop.
Save A-pZ/5476148 to your computer and use it in GitHub Desktop.
Action内でセッションを破棄してから新たなセッションを取得する方法。リダイレクトアクションを使う。
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Result;
import org.apache.struts2.convention.annotation.Results;
import org.apache.struts2.dispatcher.SessionMap;
import org.apache.struts2.interceptor.ServletRequestAware;
import org.apache.struts2.interceptor.SessionAware;
import com.opensymphony.xwork2.ActionSupport;
@Results({
@Result(name = "success", type = "dispatcher", location = "session.jsp"),
@Result(name = "newSession" , type = "redirectAction" , params={"actionName","sessionId"})
})
public class SessionSampleAction extends ActionSupport implements SessionAware , ServletRequestAware {
@Action("sessionId")
public String sessionIdCheck() throws Exception {
HttpSession httpSession = request.getSession();
this.session.put("id", httpSession.getId());
return "success";
}
@Action("sessionClear")
public String sessionRemove() throws Exception {
((SessionMap<String,Object>)session).invalidate();
return "newSession";
}
@Override
public void setSession(Map<String, Object> session) {
this.session = session;
}
private Map<String,Object> session;
@Override
public void setServletRequest(HttpServletRequest request) {
this.request = request;
}
private HttpServletRequest request;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment