从页面set两个List,list1和list2.
现在要在jsp页面显示<tr>
    <td>column1</td>
    <td>column2</td>
    <td>column3</td>
    <td>column4</td>
</tr>
<tr>
    ........
</tr> 如果column1,column2的值在list1里,column3,column4的值在list2里。
下面的<tr>该怎么写呢?

解决方案 »

  1.   

    这个,貌似不行,你用一个bean封装两个list中的对象的属性,合并成一个list然后循环,只能这样子
    比如list<A> list1
    A里面有两个属性column1,column2
    list<B> list2
    B里面有两个属性column3,column4
    然后创建一个C
    属性有column1,column2,column3,column4
    然后
    List<c> list3=new ArrayList();
    for(int i=0;i<list1.size();i++){
          A a=list1.get(i);
          B b=list2.get(i);
          C c=new C();
          c.setColumn1(a.getColumn1)
          c.setColumn2(a.getColumn2)
          c.setColumn3(b.getColumn3)
          c.setColumn4(b.getColumn4)
          list3.add(c)
    }然后传递list3
    在通过标签循环获取}
      

  2.   

    <s:iterator value="#list1" id="d" status="st">
        <s:property value="#d.key"/>
    </s:iterator><s:iterator value="#list2" id="d" status="st">
        <s:property value="#d.key"/>
    </s:iterator>
      

  3.   

    谢谢楼上2位的回答,不过补充下:只在页面处理并且用的是struts1的标签
      

  4.   

    2L的方法是行不通的 因为不止td循环 tr也要循环
    所以想只在前台实现是不现实的
    只能按照1L的方法来做
    思路我说以下:创建一个新的javaBean newObject 将2个list里面的属性都放到这个新的javaBean中
    然后将结果集存入一个存放新javaBean对象的list中 即 List<newObject> 
    然后在前台循环一个list
    sturts1的话是
    <logic:iterator >这个标签来循环 
    试试吧
      

  5.   

    二楼的方法应该是可行的,在遍历的时候每个c对象时加个<tr>就行
    <%for(int i=0;i<list3.size();i++){
    C c=list3.get(i);%>
    <tr>
    <td><%c.getColumn1 %></td>
    <td><%c.getColumn2%></td>
    <td><%c.getColumn3 %></td>
    <td><%c.getColumn4 %></td>
    </tr><%
    }%>
    大概这个样子。也不知道对不对
      

  6.   

    必须得用2楼的方法,把2个list合并成一个list
    我一般在list里add的对象是hashmap,map.put(c1);map.put(c2);map.put(c3);map.put(c4);
    list.add(map).
    你要用标签的话 还是得用bean来存放4个字段
      

  7.   

    我的有用就给点分撒,还是有明白人的啊,看上面说我说的不对,下了我一条,实际上也可以循环两个list 
    一个层在左边,一个层在右边,分开循环,但是让人的感觉是一个表格,是能做到的,只不过要会写css