通用分页实现及其OO设计探讨
五、应用通用分页框架
1.继承AbstractViewPage类,实现queryPageList(int startRow, int endRow)和
queryTotalRows()方法。
protected int queryTotalRows() throws Exception
获得查询条件的总记录数
protected List queryPageList(int startRow, int rowCount)
用于查询指定范围的数据。startRow为开始记录号, rowCount为查询的记录数
queryPageList(0,20)为查询从第一条开始的20条记录。
使用Ibatis可以由queryPageList调用queryForList()方法。
/**//**
* 用户信息分页内部类
* @author yuanguangdong
* date: Oct 22, 2006
*/
class UserInfoPage extends AbstractViewPage...{
![]()
//------------------------------------------------
//实现AbstractViewPage抽象类的抽象方法
//------------------------------------------------
![]()
/**//**
* @see com.prs.application.ehld.web.mvc.AbstractViewPage#getPageDate(int, int)
*/
protected List queryPageList(int startRow, int endRow) throws Exception ...{
return sampleAction.getUserInfoList(startRow, endRow);
}
![]()
/**//**
* @see com.prs.application.ehld.web.mvc.AbstractViewPage#getRows()
*/
protected int queryTotalRows() throws Exception ...{
return sampleAction.getUserCount();
}
![]()
}
![]()
![]()
![]()
3. 在Contrller中的实现
public ModelAndView listUser(HttpServletRequest request,
HttpServletResponse response) throws Exception ...{
String pageAction =
RequestUtils.getStringParameter(request,ViewPageHelper.PAGE_ACTION);
Integer pageIndex =
RequestUtils.getIntParameter(request,ViewPageHelper.PAGE_NO);
//声明分页对象
ViewPage userPage =
(ViewPage) request.getSession().getAttribute(ViewPageHelper.SESSION_PAGE);
//第一次请求
if(pageAction == null || userPage == null)...{
//构建一个新的分页对象
userPage = new UserInfoPage();
//设置分页大小
userPage.setPageSize(2);
}else...{
![]()
if(ViewPageHelper.SPECIAL_PAGE.equals(pageAction))...{
//如果页数为空,则默认为1
if (pageIndex == null)
pageIndex = new Integer(1);
ViewPageHelper.doAction(userPage,pageAction,pageIndex.intValue());
}else...{
ViewPageHelper.doAction(userPage,pageAction);
}
}
![]()
//从分页对象中获得当前页数据
List userInfoList = userPage.getPageData();
![]()
ModelAndView mav = new ModelAndView(userInfoListView);
mav.addObject(this.userInfoListKey,userInfoList);
request.getSession().setAttribute(ViewPageHelper.SESSION_PAGE,userPage);
return mav;
}
0
相关文章
