我在action中这样写ActionContext actionContext = ActionContext.getContext();
        Map session = actionContext.getSession();
session.put("user", user);user是一个对象,已经赋值用来测试,在另一个action中取用userActionContext actionContext = ActionContext.getContext();
        Map session = actionContext.getSession();
session.get("user", user);
user为null,但我在jsp页面中可以直接用sesson.getAttribute("user")中可以取到user对象,这是什么原因,请高手解答,如果我想在action中取用session里面设的该怎么办呢?

解决方案 »

  1.   

    就是那样搞的哈package com.anxin.struts.action;
    import com.anxin.bean.User;
    import com.anxin.service.UserService;
    import com.opensymphony.xwork2.ActionContext;
    public class UserAction extends BaseAction{
    private UserService service;
    private User user;
    public String login(){
    user=service.checkLogin(user);
    if(user!=null){
    ActionContext.getContext().getSession().put("user", user);
    return "success";
    }
    else{
    this.addActionMessage("用户名或密码错误!");
    return "input";
    }
    }
    public UserService getService() {
    return service;
    }
    public void setService(UserService service) {
    this.service = service;
    }
    public User getUser() {
    return user;
    }
    public void setUser(User user) {
    this.user = user;
    }
    }
      

  2.   

    设置Session的Action迁移到取得Session的Action,struts.xml中怎么配置的?是不是用type="redirect"了?
      

  3.   


    User user=(User) ActionContext.getContext().session.get("user");
    你在jsp中取到了,在action中是绝对能取到的
      

  4.   

          session.get("user", user);session.get("user")
      

  5.   

    ActionContext actionContext = ActionContext.getContext();
            Map session = actionContext.getSession();
            session.get("user", user);
      

  6.   

    session.get("user", user);既然是get了为啥有两个参数?把后然的去掉试试。还有就是如果是get的话本身就应该会报错呀,难道你那儿没有报错?
      

  7.   

    不是用没有redirect的问题,因为是放在session里的。如果是放在request的话type="redirect"就取不到数据了!
      

  8.   

    你已经取到了,只是没有转换,所以显示为NULL。这样就可以了:(String)session.get("user", user); 我刚试过了 System.out.print((String)session.get("user", user));后台能打印出 相应的值
      

  9.   

    我的方法和你的稍有不同,你也可以试试 (String)session.get("user");
      

  10.   

    User user=(User)ActionContext.getContext().getSession().get("user");