分隔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>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值