把这些数据放到ArrayList中,再把它放到session中,在显示页面用logic的iterate标记显示:
<logic:iterate id="author" name="arraylist" >
     <tr>
      <td width="25%">
      <bean:write name="author" property="id" filter="true"/>
</logic:iterate>
这里的arraylist就是上面放到session中的,author用来标示arraylist中元素,“id”是元素中的一个属性。
   为了操作方便,可以把没一行数据封装到一个javabean中,每个字段对应bean中具有get**,set**方法的属性。这样就可以很方便的使用上面的方法了。具体可以去看logic标记库的说明文档。

解决方案 »

  1.   

    谢谢你的回复,我的情况是这样的,我的DepartmentInfo类有两个方法,
    public Enumeration getDepartmentIDElement()//得到数据库中所有部门的编号
    public void setDepartmentInfo(int id)//从数据库中得到部门的所有信息,id为部门在数据库的编号Enumeration enum = di.getDepartmentIDElement();
    while(enum.hasMoreElements())
    {
    di.setDepartmentInfo(Integer.parseInt((String)enum.nextElement()));
    }
    在这段代码之后可以用get()得到各个需要的值,那么我想用Struts来做,那么JSP和Action类该怎么写呢?请指教了。
      

  2.   

    不太明白你的意思。你要显示的数据是什么?
    大体上可以这样写:
    action:   //把准备显示的每一行信息放到你这里的bean中(不怎么理解你这里的  DepartmentInfo,我的意思是:把每一行数据封装到一个javabean中,每个字段对应bean中具有get**,set**方法的属性。)//然后,再把这bean 作为一个元素放到一个collection,比如ArrayList——departs中。最后把这个collection放到session中:session.setAttribute("departs",departs);jsp页面:<logic:iterate id="depart" name="departs" >
         <tr>
          <td width="25%">
          <bean:write name="depart" property="id" filter="true"/></td>                       ^这里对应bean的一个属性
         </tr>
         <td width="25%">
          <bean:write name="depart" property="name"  filter="true"/></td>
        </tr>
    .............
         
    </logic:iterate>
    只是简单的说明,具体可以参考struts-example等例子。
      

  3.   

    谢谢你,我也是按类似你方法做的,这样把对象都保存在一个session里,如果对象很大,这样的方式是不是很占资源,这样的方式效率高吗?在Struts里做循环显示,这种方式是不是唯一的?请你指教,谢谢。
      

  4.   

    我也在考虑这个问题,还有就是如何处理放到session中的对象。
    关于循环显示的问题,昨天刚刚看到struts1.1中引入了nested这个标记库,也可以用来做循环显示,但它还有很强的功能,就是嵌套(顾名思义)。不过,还不会用。你可以关注一下!