/****************************************** * 分页辅助类 * 用法示例: * PageHelper pageHelper=new PageHelper(); * pageHelper.setPageSize(10);(可选),设置页面大小 * pageHelper.getRequestPage();获取请求的页面值 ,如页面中的page=2参数。或以其他方式获得page值则用setCurrentPage(int)方法设置当前页 * newsList=xxx.getNews(catalogId, pageHelper.getSkip(), pageHelper.getMax());获取该页面的一段数据记录 * * out.print(pageHelper.showNavigation());用在页面中,打印导航信息 ******************************************/ public class PageHelper { final static private int DEFAULT_CURRENT_PAGE=1;//默认当前页 final static private int DEFAULT_PAGESIZE=10; //默认页面大小 private String CURRENT_PAGE_STR="page"; //页面中分页的参数
private HttpServletRequest request; private int _currentPage; //当前页 private int _pageSize; //页面大小 private int _skip; //跳过的记录数 private int _max; //获取记录的数量
private String _queryStr=null; //其他查询参数字符串
private int _maxCount=-1; //总记录数 private int _maxPage=-1; //总页数
public PageHelper(){ this(DEFAULT_CURRENT_PAGE,DEFAULT_PAGESIZE); }
public PageHelper(int currentPage){ this(currentPage,DEFAULT_PAGESIZE); }
public PageHelper(int currentPage,int pageSize){ _currentPage=filterPageNum(currentPage); _pageSize=pageSize; calculateSpan();
}
public void setCurrentPage(int currentPage){ _currentPage=filterPageNum(currentPage); calculateSpan(); }
public void setPageSize(int pageSize){ if(pageSize<1) pageSize=DEFAULT_PAGESIZE; _pageSize=pageSize; calculateSpan(); }
public void setQueryStr(String queryStr){ this._queryStr=queryStr; }
public void setMaxCount(int maxCount){ _maxCount=maxCount;