日期:2014-05-17  浏览次数:20832 次

请教Struts2 Action类中Session值传递问题
本人新手,请各位指导

我想在两个Action之间传递存放在Session中的用户ID
试了两种方法,还一种就是HttpSession,也是得到空值,我对Session不太了解


//这是我获得Session的方法
ActionContext actionContext = ActionContext.getContext();
Map session = actionContext.getSession();
session.put("userid",userid) 
//存放在这个Session中的值,另一个Action怎么取?
//另一个类中使用 
session.get("userid");
 //获得是空。

------解决方案--------------------
每个用户请求服务器都会返回一个sessionid来保证session的唯一性的。
你确实你保存的userid不为空吗? 如果你保存的userid不为空,按理不会出现空的。
先检查一下
------解决方案--------------------
获得方式就不对把 这样试试

public class LoginAction3 extends ActionSupport {
     //第三种取得方式  
     private HttpServletRequest request;
     private HttpSession session;
     private ServletContext application;
     
     public LoginAction3() {
           request = ServletActionContext. getRequest();
           session = request.getSession();
           application = session.getServletContext();
     }
     
     @Override
     public String execute() throws Exception {
           request.setAttribute( "r1", "r1");
           session.setAttribute( "s1", "s1");
           application.setAttribute( "a1", "a1");
           return SUCCESS;
     }
     
}