CShop Project 08-2: 获取分页数据模型并传递到页面上

1.  GoodsListServlet.Java

       int pageNo = 0;
        if(request.getParameter("pageNo") != null) {
            pageNo = Integer.parseInt(request.getParameter("pageNo"));
        }

          List<Goods> list = gService.selectGoods(id, pageNo, 8); // 显示第pageNo页, 1页最多显示8条数据
          request.setAttribute("list", list);

 

2.  GoodsDao.java

public int getGoodsCount(int typeId) throws SQLException {
        QueryRunner r = new QueryRunner(DBUtil.getDataSource());
        String sql="";
        if(typeId == 0) {
            sql = "select count(*) from goods ";
        }else {
            sql = "select count(*) from goods where type_id = ?  ";
        }
        return r.query(sql, new ScalarHandler<Long>()).intValue();    
    }

3.  GoodsService.java

    
    public Page getGoodsPage(int typeId, int pageNo) {
        
        // 获得pageNo
        Page p = new Page();
        p.setPageNumber(pageNo);
        
        // 获得总页数
        int totalCount = 0;
        try {
            totalCount = gDao.getGoodsCount(typeId);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        p.setPageSizeAndTotalCount(8, totalCount);
        
        // 获得对应页的商品数据
        List list = null;
        try {
            list = gDao.selectGoods(typeId, pageNo, 8);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        p.setList(list);
        
        
        return p;        
    }

4.  GoodsListServlet.java

//        List<Goods> list = gService.selectGoods(id, pageNo, 8);    // 显示第pageNo页, 1页最多显示8条数据
//        request.setAttribute("list", list);
        
     // 修改为传递分页数据模型: Page p
= gService.getGoodsPage(id, pageNo); request.setAttribute("p", p);

 

posted @ 2020-08-25 05:28  Jasper2003  阅读(168)  评论(0编辑  收藏  举报