下边这段代码,是通过什么实现分页的?求大神给逐句讲解下呗~~万分感激
action:
public String getList() throws Exception
{
// 分页
Map paraMap = new HashMap();
paraMap.put("userId", super.getUser().getId());
paraMap.put("iframeId", super.getIframeId());
super.setPager(paraMap, 20);
trainingOrCompetitionList = dao.getList(super.getUser().getId(), super.getPager());
return SUCCESS;
}
setPager:
public void setPager(Map paraMap, int onePagerSize) {
if (this.pager == null) {
this.pager = PagerCommon.reqForPage(request);
this.pager.setParaMap(paraMap);
if (onePagerSize != 0) {
this.pager.setPageSize(onePagerSize);
}
} else {
this.pager.setParaMap(paraMap);
}
}
getList()
1. 初始化一个Map对象paraMap
2. 往Map对象paraMap中插入一条数据,键为userId,如下方法取值:先找到父类的getUser()方法,返回一个User对象,再调用User类中的getId()方法,得到该User对象的Id值
3. 往Map对象paraMap中插入一条数据,键为iframeId,调用父类的getIframeId方法,获取iframeId值
4. 调用父类的setPager方法,将paraMap和20作为参数传入其中
5. 调用Dao层的getList方法得到trainingOrCompetitionList,其中传入userId和pager参数
setPager,有两个参数paraMap和onePagerSize
1. 如果本类中的pager属性没有初始化
2. 调用PagerCommon.reqForPage方法初始化pager,传入request参数
3. 将设置pager的paraMap属性,传入paraMap参数
4. 如果onePagerSize不为0(单页的大小)
5. 如果本类的pager已经初始化
6. 设置pager的paraMap属性,传入paraMap参数