易生活(二)-web---商品列表显示、分页封装、分页处理
2016-04-16 20:30
295 查看
目录
商品列表显示业务逻辑分析分页的的封装思路
分页的处理
商品列表显示业务逻辑分析
核心逻辑/* * 显示商品list逻辑: * 第一步:获取请求页码。如果第一次请求,默认页码是1。 * 第二步:根据页码获取相应商品List和商品总条数。 * 第三步:根据商品id获取商家bean。 * 第四步:根据当前页码、商品List、商品总条数、每页条数(全局参数)封装PagerBean(注意,该bean包括所有需要的信息,包括List,页码各种信息等). * 我们需要回传的数据:只有一个Pager */
分页的的封装思路
Pager.javapublic 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; }
相关文章推荐
- Android BuildConfig文件
- Qt类构造函数中explicit修饰符的作用?
- 解决cookie中文乱码问题
- Hadoop—MapReduce练习(数据去重、数据排序、平均成绩、倒排索引)
- iOS 项目一直在后台执行
- Comparable与Comparator的区别
- 【笔试/面试】MFC(六)—— 菜单
- 树莓派系统安装教程
- Hadoop学习
- win10中使用sqlserver2008r2 SQL Server 配置管理器
- Ladda 应用提交表单的时候显示loading载入中 包含不同位置,不同效果
- 易生活(一)-web---商品上传、smartupload使用、虚拟路径
- 博学之,审问之,慎思之,明辨之,笃行之
- 原生 js 实现全屏滚动效果
- post与get的区别
- 安装Ubuntu虚拟机详解
- Android 用MediaCodec实现视频硬解码
- LeetCode——034
- Validate Disk Failover Failed
- 一个大四求职菜鸟的web前端之路(终)