日期:2014-05-18  浏览次数:20796 次

如何在Action中获取用户session中的值?
@Override

  public   ActionForward   list(ActionMapping   mapping,   ActionForm   form,   HttpServletRequest   request,
          HttpServletResponse   response)   {
    buzzLog.info( "-@Override-list--- ");
    int   ret   =   1;

    HttpSession   session   =   request.getSession();
String     val   =   (String)   session.getAttribute( "test ");
      if   (   val   ==   "yes ")   {
      super.list(mapping,   form,   request,   response);
      return   mapping.findForward(LIST);
    }
val取到的值是空的

在用户登录的时候已经setAttribute( "test ", "yes ");

------解决方案--------------------
判断写错了吧,应该是
if (val.equals( "yes ")){
super.list(mapping, form, request, response);
return mapping.findForward(LIST);
}
------解决方案--------------------
不好意思,想着application了.
不是==啦...是val.equal( "yes ")
------解决方案--------------------
那就session没获取到拜,在仔细看看你设置session的时候有没错。
或者session这个会话有没有存在。
------解决方案--------------------
问题可能出在:
1 不知道lz判断val是空的,是不是通过这个语句判断的 if ( val == "yes ") 还是通过debug判断的,改为 ` "yes ".equals(val)看看

2 HttpSession session = request.getSession();
改为:
HttpSession session = ((HttpServletRequest) request).getSession();
看看!
------解决方案--------------------
看看你前面的页面有没有frame或者你使用了 response.sendRedirect();

window.location忘了是不是还在同一会话了。
------解决方案--------------------
一个页面有几个frame,不同的frame是不同的session.你可以改成iframe试试。
------解决方案--------------------
不好意思多写了一个request
应该是:


我在action 里就是这么接的:
String str = (String)request.getSession().getAttribute( "user_id ");
存的时候:
request.getSession().setAttribute( "user_id ", "123 ");


------解决方案--------------------
把struts-config.xml贴出来,我怀疑是不是你这个action配置的时候,没有写scope= "request "
------解决方案--------------------
request.setAttribute( "login ", "yes ");
request.setAttribute( "test ", "yes ");

val = (String) session.getAttribute(attribute);

-----------------------------------------------------
存在reqeust中,去session中能取到才怪。

-----------------------------------------------------
<c:redirect url= "/aue/calendar.do "/>

这句话,重定向了,不在同一session内。
------解决方案--------------------
顶ls,楼主在存对象的时候存错了位置