从页面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>该怎么写呢?
现在要在jsp页面显示<tr>
<td>column1</td>
<td>column2</td>
<td>column3</td>
<td>column4</td>
</tr>
<tr>
........
</tr> 如果column1,column2的值在list1里,column3,column4的值在list2里。
下面的<tr>该怎么写呢?
比如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:property value="#d.key"/>
</s:iterator><s:iterator value="#list2" id="d" status="st">
<s:property value="#d.key"/>
</s:iterator>
所以想只在前台实现是不现实的
只能按照1L的方法来做
思路我说以下:创建一个新的javaBean newObject 将2个list里面的属性都放到这个新的javaBean中
然后将结果集存入一个存放新javaBean对象的list中 即 List<newObject>
然后在前台循环一个list
sturts1的话是
<logic:iterator >这个标签来循环
试试吧
<%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><%
}%>
大概这个样子。也不知道对不对
我一般在list里add的对象是hashmap,map.put(c1);map.put(c2);map.put(c3);map.put(c4);
list.add(map).
你要用标签的话 还是得用bean来存放4个字段
一个层在左边,一个层在右边,分开循环,但是让人的感觉是一个表格,是能做到的,只不过要会写css