您的位置:首页 > 编程语言 > Java开发

Struts2 框架下 session 读出来为null

2016-06-11 11:24 302 查看
我用的strust2框架,开始的时候这么写的:

在 登陆函数中(注释部分):

public String dealerLogin(){
EntityInfo entityinfo=dealerservice.dealerLogin(super.account,super.password);
if(entityinfo!=null){
/*             ActionContext ac = ActionContext.getContext();我开始用的这种方式写入到session中
ac.getSession().put(KeyConstant.MANAGER,entityinfo); */
ServletActionContext.getRequest().getSession().setAttribute(KeyConstant.MANAGER,entityinfo);
return "dealertlogin";
}
else{
return "false";
}
}


用的时候的函数:

public String addAllMachCode(){
String[] machinearrs=machinearr.split(";");
int dealerId=0;
/*        HttpServletRequest request=ServletActionContext.getRequest();
HttpSession session=request.getSession();
EntityInfo entityinfo=(EntityInfo) session.getAttribute(KeyConstant.MANAGER);*/这里读出来  entityinfo是null
EntityInfo entityinfo= (EntityInfo) ActionContext.getContext().getSession().get(KeyConstant.MANAGER);
Dealer dealer= entityinfo.getDealer();
dealerId=dealer.getDEALER_ID();
for (String machinecode :machinearrs) {

addAMachCode(machinecode,dealerId);
}
return SUCCESS;
}

这到底是为什么了:
提取出来  第一种: 写入  ActionContext ac = ActionContext.getContext();
ac.getSession().put(KeyConstant.MANAGER,entityinfo)
          读取: HttpServletRequest request=ServletActionContext.getRequest();
               HttpSession session=request.getSession();
              EntityInfo entityinfo=(EntityInfo) session.getAttribute(KeyConstant.MANAGER);
      第二种:写入   ServletActionContext.getRequest().getSession().setAttribute(KeyConstant.MANAGER,entityinfo);
          读取: EntityInfo entityinfo= (EntityInfo) ActionContext.getContext().getSession().get(KeyConstant.MANAGER);
有没有人解释下 为什么  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: