zhanmingbo 2010-01-02 02:05
浏览 478
已采纳

session 的值为什么有时候能获取有时候不能获取呢?

action中的代码

  public String add() throws Exception {
        Map<String, Object> session = ActionContext.getContext().getSession();
        String yanzhengma = session.get("yanzhengma").toString();
        
        Encode encode = new Encode();
        log.debug("判断输入的验证码是否正确");
        if(encode.encodeByMD5(this.yanzhengma.toUpperCase()).equals(yanzhengma)){
            log.debug("输入的验证码正确");
            //DaBase实例
            DaBase base = new DaBase();
            base.setType(type);
            base.setUsername(username);
            base.setPassword(password);
            base.setEmail(email);
            //判断是否注册成功
            log.debug("开始注册。");
            if(!baseService.add(base)){
                addActionError("注册失败!");
                log.debug("注册失败.");
                return ERROR;
            }else {
                //将用户名保存到request范围中
                //ServletActionContext.getRequest().setAttribute("username", username);
                session.put("username", username);
                session.put("email", email);
                log.debug("注册成功。");
                return SUCCESS;
            }
        }else{
            log.debug("输入的验证码不正确");
            return ERROR;
        }
    }

跳转的第一个jsp页面 中获取session的代码   <input type="hidden" name="username" value="${session.username }"/>    

第二个页面也是如此  但有时侯能获取 有时候又不能获取

 

请问这是怎么回事呢?

 

  • 写回答

3条回答 默认 最新

  • mbb1234567890 2010-01-05 17:48
    关注

    你的程序有很强的struts1的痕迹,有几处写的不合适的地方,
    1、你拿到的session不是真正的session,是struts2封装过的,是一个map,
    所以写sessionScope取值是不合适的
    2、取值时如果用struts2标签的话,直接写#username即能取到了
    3、由于你使用了struts2封装过的session,所以当你再次往session中put同一个key的变量时,该key对应的值不再是唯一的,而会变成一个数组,也就是说,你的代码反复执行几遍之后,#username所取出的值会变成一个数组,而不是一个值了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥20 蓝牙耳机怎么查看日志
  • ¥15 R语言 拟时序分析降维图如何减少分支
  • ¥15 Fluent齿轮搅油
  • ¥15 八爪鱼爬数据为什么自己停了
  • ¥15 交替优化波束形成和ris反射角使保密速率最大化
  • ¥15 树莓派与pix飞控通信
  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统