jsp怎么遍历2个list?
从页面set两个List,list1和list2.
现在要在jsp页面显示
JScript code
<tr>
<td>column1</td>
<td>column2</td>
<td>column3</td>
<td>column4</td>
</tr>
<tr>
........
</tr>
如果column1,column2的值在list1里,column3,column4的值在list2里。
下面的<tr>该怎么写呢?
------解决方案--------------------这个,貌似不行,你用一个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
在通过标签循环获取
}
------解决方案--------------------<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>
------解决方案--------------------2L的方法是行不通的 因为不止td循环 tr也要循环
所以想只在前台实现是不现实的
只能按照1L的方法来做
思路我说以下:创建一个新的javaBean newObject 将2个list里面的属性都放到这个新的javaBean中
然后将结果集存入一个存放新javaBean对象的list中 即 List<newObject>
然后在前台循环一个list
sturts1的话是
<logic:iterator >这个标签来循环
试试吧
------解决方案--------------------二楼的方法应该是可行的,在遍历的时候每个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><%
}%>
大概这个样子。也不知道对不对
------解决方案--------------------必须得用2楼的方法,把2个list合并成一个list
我一般在list里add的对象是hashmap,map.put(c1);map.put(c2);map.put(c3);map.put(c4);
list.add(map).
你要用标签的话 还是得用bean来存放4个字段