日期:2014-05-17  浏览次数:20811 次

急如题:jsp表格分行显示问题
-->

  </head>
  <body>
  <%
  Expert_teamBo ex = new Expert_teamBo();
  Expert_team ea = new Expert_team();
  List list = null;
  list = ex.SelectAllExpert_team(); 
  //int a = 2;
  %>
  <Table>  
   
  <% 
  for(int i =0;i<list.size();i++){
  ea =(Expert_team)list.get(i);
   
  %>
  <tr>
  <td><%=ea.getNAME()%></td>
 
  </tr>
  <%
  } 
  %>
  </Table>

显示出来的效果是这样的宋三泰 

叶根耀 
测试 
1111 

1212 
321 
测试数据 
测试数据是否正确 
哈哈测试数据是正确的 
哈哈测试数据是正确的 

怎么样才能显示

宋三泰 叶根耀 
测试 1111 
0 1212
321 测试数据 
测试数据 哈哈测试
哈哈测试

------解决方案--------------------
考虑一下 根据遍历的索引 i 进行2的取模运算,根据条件动态生成tr 也就是
 for(int i =0;i<list.size();i++){
 if(i%2 == 0){
<tr>
}
<td>显示的值</td>
if(i%2 == 1){
</tr>
}
}
------解决方案--------------------
<%
for(int i =0;i<list.size();){
ea =(Expert_team)list.get(i);
eb =(Expert_team)list.get(i+1);
%>
<tr>
<td><%=ea.getNAME()%></td>
<td><%=eb.getNAME()%></td>
</tr>
<%
i+=2;
}
%>
------解决方案--------------------
或者:
<%int j =2;
for(int i =0;i<list.size();i++){
%>
<tr> <%
for(;i<j;i++){
ea =(Expert_team)list.get(i);
%>
<td><%=ea.getNAME()%></td>
<% }%>
</tr>
<%
j+=2;
}
%>
------解决方案--------------------
HTML code

<%  
  boolean flag = true;
  for(int i =0;i<list.size();i++){
  ea =(Expert_team)list.get(i);
    
  if(flag){
  %>
  <tr>
  <td><%=ea.getNAME()%><%flag=false;%></td>
  
  <%}else{%>
 <td><%=ea.getNAME()%><%flag=true;%></td></tr>

  <%
  }  }
  %>