举个例子:
张三访问
<%
User user1 = new User("张三",32);
session.setAttribute("user",user1);
%>李四访问
<%
User user2 = new User("李四",25);
session.setAttribute("user",user2);
%>两个不同的session都存到了一个sessions的集合,现在我的问题就是通过el表达式循环这个sessions把所有的user都取出来,然后再把每个user的信息输出来,请问大虾如何做,贴上我的错误代码,求指点:
<c:forEach items="${session}" var="se" varStatus="id">
   ${se}<!--这循环出来是一个session对象,怎么得到这个session里面的user还有user的信息呢?-->
 </c:forEach>

解决方案 »

  1.   

    想得到所有的在线用户?
    这种取所有的session应该是办不到的
      

  2.   

    把session的集合放到application里然后你就会了
      

  3.   

    sessions集合已经放到application里面的,大虾切入重点,告诉我怎么把这个值取出来就好了,我不知道了,按理说session就是一个map集合,我又加了个循环,这样的:
    <c:forEach items="${sessions}" var="se" varStatus="id">
       ${id.index}
       <c:forEach var="item" items="${se['user']}"> 
    ${item.userName } 
    </c:forEach> 
     </c:forEach>
    为什么${se['user']}这里说找不到user,session里我存了user的,并且在action里面都可以成功完成,这段el表达式换成java脚本我就可以成功取出来,只是不想用这些代码影响了后台页面的美观,也想弄清楚这个问题。
      

  4.   

    session可不是简单的一个集合。。用小脚本吧
      

  5.   

    可以把取出来的值放到map中去然后通过key取值啊。。然后放到session中
    很简单的。。
    <c:forEach items="${key[业务中的key]}" var="se">
    ${se.id}
    </c:forEach>
      

  6.   

    打比方
    DynaActionForm df=(DynaActionForm)form;
    Photo photo=(Photo)df.get("pic");
    Map photoMap =biz.doLoad(photo);
    request.getSession().setAttribute("Photo", photoMap);
    return mapping.findForward("picManage");
      

  7.   

    你说的我知道,看看我的代码就是这样取的,报错是找不到user这个键,问题就是我set进去的就是用的user。
      

  8.   

    session不是map当然不能用这种形式取了fuck_y的意思是把session里德user对象封装到一个map里然后将这个map放到application里,这样取值的时候就能直接取map的值了
      

  9.   

    那就是说我不能用el表达式的方式取到session里面的对象了,只能用小脚本或者换成一个map取了额?