我的action通过实现SessionAware接口,拿到Map类型的session.
我的拦截器ActionContext.getContext().getSession();拿到Map类型的session.我的问题,我有一个Action,ActionA,这个Action并没有定义拦截器,在这个acion中,我向拿到的session中put了一个值。
然后结束后返回页面,在页面上,我点击另外一个按钮,提交ActionB。ActionB是定义了拦截器的,所以先走到拦截器里面,但是,在拦截器里面我看了下拿到的session中并没有刚才设置的值,这是为什么呢?什么地方写得不对吗?(在拦截器中拿到的session不是null,但是没有内容)请各位给个解释,大家在拦截器中获取session的时候都是怎么用的呀?

解决方案 »

  1.   

    session在这里有两种的,如果你是使用的struts的session。我就不太清楚,但是如果你使用的是httpsession的话,这种问题应该是不会发生的,要不你用httpsession试下看可不可以解决问题,我使用过的httpsession一般都是不会出问题的,你自己在审量下 吧!
    HttpSession session = ServletActionContext.getRequest().getSession();
    User u=(User)session.getAttribute("User");
      

  2.   

    确实有两种,而且我只不过是要保存几个值,也不想去用HttpSession了主要我想知道为什么会取不到呢。
    网上的例子全都是直接在拦截器里面ActionContext.getContext().getSession();也没给出过action的代码,也不知道都自己试过了,还是就那么一贴。看来看去到处都是一样的。
      

  3.   

    HttpSession session = ServletActionContext.getRequest().getSession();
      

  4.   


    那应该怎么配置呢?拦截器的配置还能影响到session的取得吗?
    运行起来貌似没什么问题呀,哪些action需要拦截,哪些不需要,除了这个session取不到,其它看起来都挺正常的
      

  5.   

    还有人吗?大家在拦截其中获取session都很正常吗?没遇到过类似的问题?
      

  6.   

    把问题升级一下。
    定义由拦截器拦截的Action中设置的session信息,在拦截器中被正常取得,
    没有定义有拦截器的Action中设置的session信息,在拦截器中就取不到,这是为什么呢?
      

  7.   

    看看你源代码啊 大家好分析你用那种session
      

  8.   

    此session非彼session
    你需要的session只不过是一个Map类型的键值对而已,s2自带的session就是这样的,你可以拿来用
    实在觉得麻烦,可以自己创建一个seesion
    不要想得太麻烦了
      

  9.   

    我对不起各位老大,原来不是拦截器没取到session,是我自己在action里面把session清空了。我有罪。。