易生活(二)-web---商品列表显示、分页封装、分页处理

目录

  • 商品列表显示业务逻辑分析
  • 分页的的封装思路
  • 分页的处理

商品列表显示业务逻辑分析

  • 核心逻辑

        /*
         * 显示商品list逻辑:
         * 第一步:获取请求页码。如果第一次请求,默认页码是1。
         * 第二步:根据页码获取相应商品List和商品总条数。
         * 第三步:根据商品id获取商家bean。
         * 第四步:根据当前页码、商品List、商品总条数、每页条数(全局参数)封装PagerBean(注意,该bean包括所有需要的信息,包括List,页码各种信息等).
         * 我们需要回传的数据:只有一个Pager
         */
    

分页的的封装思路

  • Pager.java

    public class Pager<T> {
    public int perSize = ParamUtils.PERPAGE;// 每页条数
    private int nowPager; // 当前页
    private int totalPageNum; // 总页数
    private int totalRecordNum; // 总条数
    private List<T> objects; // 获取的信息列表
    //Getter、Setter...
    }
    
  • 将Pager定义成一个泛型Pager主要是为了变量List考虑,因为List可能是各种物品的List,比如商品、商家、客户等。

  • 其它信息不再说明,全部都有注释。
  • 这样封装,我们可以保证所有我们需要的俺叔全部在这个“Pager”里面,我们向页面返回数据时,只要返回一个Pager即可。
  • 注意,我们可能需要的一些参数不再List这个“T”里面,这是一个bean,我们可以在该bean中添加需要的成员变量即可。保证返回数据的“高聚性”。

分页的处理

  • 我们首先创建一个特别特别简单的页面处理工具类,看似简单,却使分页处理简单许多

    public class PageUtils {
        /**
         * @param pager
         *            当前页 。返回limit m,n 的第一个参数
         */
        public static int getParam1(int pager) {
            int param1 = (pager - 1) * ParamUtils.PERPAGE;
            return param1;
        }
    
        /**
         * @param totalRecordNum
         *            信息总条数 。返回 总页数
         */
        public static int getPagersByNums(int totalRecordNum) {
            int totalPageNum = (totalRecordNum + ParamUtils.PERPAGE - 1)
                    / ParamUtils.PERPAGE;
            return totalPageNum;
        }
    
    }
    
  • 核心部分非常简单

    public Pager<Goods> getGoodsPager(int page) {
            IGoodsDao goodsDao = new GoodsDao();
            Pager<Goods> p=new Pager<Goods>();
            List<Goods> goodsList=goodsDao.getGoodsList(page);//过去List参数
            int count =goodsDao.getGoodsCount();//获取总条数
    
            p.setNowPager(page);//设置当前页
            p.setPerSize(ParamUtils.PERPAGE);//设置每页大小
            p.setTotalRecordNum(count);//设置总条数
            p.setTotalPageNum(PageUtils.getPagersByNums(count));//设置总页数
            p.setObjects(goodsList);//封装信息list
            return p;
        }
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值