每个用户请求服务器都会返回一个sessionid来保证session的唯一性的。
你确实你保存的userid不为空吗? 如果你保存的userid不为空,按理不会出现空的。
先检查一下

解决方案 »

  1.   

    HttpSession session=ServletActionContext.getRequest().getSession();session.put("userid",userid) 
    //存放在这个Session中的值,另一个Action怎么取?
    //另一个类中使用 
    session.get("userid");
     //获得是空。
      

  2.   

    获得方式就不对把 这样试试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;
         }
         
    }
      

  3.   

    HttpSession 不会空值  可能是你写错了
      

  4.   

    在另一个类中,首先要先获取session,才能get出来值
      

  5.   

    HttpSession session = ServletActionContext.getRequest().getSession();
    session.setAttribute("onlineUser", user);
      

  6.   

    你在这个action里的session是自己定义的一个Map
    改成HttpSession  就可以了
      

  7.   

    userid 不会空,值已经存进Session里了,我在当前类 Integer id = session.setAttribute("userid");可以获得id,   但是我在另一个Action类里却获得为空userid 不会空,值已经存进Session里了,我在当前类 Integer id = session.setAttribute("userid");可以获得id,   但是我在另一个Action类里却获得为空
      

  8.   

    发现一个问题就指点!  我发现Session不传值是因为浏览器问题,我用搜狗和火狐可以传,但是IE,还有MyElipse自带的也不行。
      

  9.   

    一个session而已 怎么会是因为浏览器呢 
    你同一个回话 怎么会取得不到值  不会的
      

  10.   

    先让session赋值
    session =ActionContext.getContext().getSession();
    session.get("userid");就可以了
      

  11.   

    应该是与struts下session的获取需要cookie有关ie自动调整cookie不保存的缘故我说的没错吧 楼主