您的位置:首页 > 其它

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

2016-04-16 20:30 295 查看

目录

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

分页的的封装思路

分页的处理

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

核心逻辑

/*
* 显示商品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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: