分隔list,让页面成多行多列遍列

整体思想就是让list包含list
反回list的dao方法
public List getAllGoods(String strcurrentP,String strcurrentG,String goWhich) throws SQLException{
String sqlall="select  * from goods order by goodsStocktime desc";
setDaoPage(sqlall,null,strcurrentP, strcurrentG, goWhich);
int currentP=getDaoPage().getCurrentP();
int top1=getDaoPage().getPerR();
int top2=(currentP-1)*top1;
String sqlsub="";
if(currentP==1){
sqlsub="select  * from goods order by goodsStocktime desc";
}
else
{
sqlsub="select  * from goods order by goodsStocktime desc limit "+top1+","+top2+"";
}
List alllist=getList(sqlsub,null);
List goodslist=divide(alllist,top1);
return goodslist;
}
分隔list的方法 perR其实就是一页当中要放多少数据,然后再放到这里来分隔
private List divide(List list,int perR){
List goodslist=null;
if(list!=null){
goodslist=new ArrayList();
/* ①首先补齐长度 */
int blank=perR-list.size(); //因为每页显示perR条记录,所以list的长度只能等于perR或小于perR
if(blank>0){ //若list的长度小于perR,则向list中存放blank个null值,将list长度补齐到perR
for(int i=0;i<blank;i++)
list.add(null);
}
/* ②然后进行划分 */
for(int i=0;i<3;i++){ //平均分成3份
List temp=new ArrayList();
for(int j=0;j<4;j++){ //将每份中的元素存储到temp中
temp.add(list.get(4*i+j));
}
goodslist.add(temp); //存储temp到medialist中
}
}
return goodslist;
页面上遍列代码,我这里是遍列是遍列一个一个表格的行,外层的遍列行,就可以形成多行,里层遍列多个列
                          <c:forEach var="oneGoodsList"  items="${allgoodslist}" >
    <tr>
      <c:forEach var="goods" items="${oneGoodsList}">
  <td>
     <c:if test="${!empty goods}">
     <span style="{width:100px;height:100px;border:1px solid #990000;text-align:center}">
<br><br>商品图片</span><br>
商品名称:<c:out value="${goods.goodsName}"></c:out><br>
商品价格:<c:out value="${goods.goodsPrice}"></c:out> <br>
<A HREF="viewgoods?goodId=${goods.id}" target="_blank"">查看详细信息</A>
     </c:if>
  </td>
  </c:forEach>
</tr>
<tr height="3" bgcolor="green" ><td colspan="4"></td></tr>
</c:forEach>

 

猜你喜欢

转载自lushuifa.iteye.com/blog/1013253