直接把代码贴出来以后方便看。
page = new Page<MissionlistVo>((pageNum-1)*pageSize,pageSize,list);
调用 传入参数:pageNum pageSize list
/** * 分页对象. 包含当前页数据及分页信息如总记录数. * */ public class Page<T> implements Serializable { /** * */ private static final long serialVersionUID = 7066551090434228986L; private static int DEFAULT_PAGE_SIZE = 10; private int pageSize = DEFAULT_PAGE_SIZE; // 每页的记录数 private long start = 0L; // 当前页第一条数据在List中的位置,从0开始 private List<T> result; // 当前页中存放的记录,类型一般为List private long totalCount; // 总记录数 private String innerHtml; //分页 /** * 构造方法,只构造空页. */ public Page() { this(0, 0, DEFAULT_PAGE_SIZE, new ArrayList<T>()); } /** * 默认构造方法. * * @param start 本页数据在数据库中的起始位置 * @param totalSize 数据库中总记录条数 * @param pageSize 本页容量 * @param result 本页包含的数据 */ public Page(long start, long totalSize, int pageSize, List<T> result) { this.pageSize = pageSize; this.start = start; this.totalCount = totalSize; this.result = result; this.toHtmlString(); } /** * 构造方法 * @param start 本页数据在数据库中的起始位置 * @param pageSize 本页容量 * @param total 所有数据 */ public Page(long start, int pageSize, List<T> total) { this.pageSize = pageSize; this.start = start; this.totalCount = total.size(); this.result = new ArrayList<T>(); for(int i=(int)start; i<total.size() && i<start+pageSize; i++) { this.result.add(total.get(i)); } this.toHtmlString(); } /** * 取总记录数. */ public long getTotalCount() { return this.totalCount; } /** * 取总页数. */ public long getTotalPageCount() { if(pageSize == 0) return 0; if (totalCount % pageSize == 0) return totalCount / pageSize; else return totalCount / pageSize + 1; } /** * 取每页数据容量. */ public int getPageSize() { return pageSize; } /** * 取当前页中的记录. */ public List<T> getResult() { return result; } /** * 设置记录. */ public void setResult(List<T> result) { this.result = result; } /** * 取该页当前页码,页码从1开始. */ public long getCurrentPageNo() { if(pageSize == 0) return 0; return start / pageSize + 1; } /** * 该页是否有下一页. */ public boolean hasNextPage() { return this.getCurrentPageNo() < this.getTotalPageCount() ; } /** * 该页是否有上一页. */ public boolean hasPreviousPage() { return this.getCurrentPageNo() > 1; } /** * 获取任一页第一条数据在数据集的位置. * * @see #getStartOfPage(int,int) */ public long getStartOfPage(int pageNo) { return getStartOfPage(pageNo, this.pageSize); } /** * 获取任一页第一条数据在数据集的位置. * * @param pageNo 从1开始的页号 * @param pageSize 每页记录条数 * @return 该页第一条数据 */ public static long getStartOfPage(int pageNo, int pageSize) { return (pageNo - 1) * pageSize; } public void toHtmlString(){ if (this.getTotalPageCount() < 2) { this.innerHtml = ""; }else{ StringBuffer htmlStr = new StringBuffer(1024); htmlStr.append(" 共").append(this.getTotalCount()); htmlStr.append("条记录,每页").append(this.pageSize); htmlStr.append("条,共").append(this.getTotalPageCount()); htmlStr.append("页,当前第").append(getCurrentPageNo()).append("页 "); htmlStr.append("<a "); if(this.getCurrentPageNo() > 1){ htmlStr.append("herf='#' onclick='javascript:getPage(1);'"); } htmlStr.append(">首页</a> "); htmlStr.append("<a "); if(this.hasPreviousPage()){ htmlStr.append("herf='#' onclick='javascript:getPage(").append(this.getCurrentPageNo()-1).append(");'"); } htmlStr.append(">上一页</a> "); htmlStr.append("<a "); if(this.hasNextPage()){ htmlStr.append("herf='#' onclick='javascript:getPage(").append(this.getCurrentPageNo()+1).append(");'"); } htmlStr.append(">下一页</a> "); htmlStr.append("<a "); if(this.getCurrentPageNo() < this.getTotalPageCount()){ htmlStr.append("herf='#' onclick='javascript:getPage(").append(this.getTotalPageCount()).append(");'"); } htmlStr.append(">尾页</a> "); this.innerHtml = htmlStr.toString(); htmlStr = null; } } public String getInnerHtml() { return innerHtml; } public void setInnerHtml(String innerHtml) { this.innerHtml = innerHtml; } 最重要的是只需要new 一个page 这样把list传过去。 把pagesize ,pagenum传过去然后就可以直接得到分页结果了
page = new Page<MissionlistVo>((pageNum-1)*pageSize,pageSize,list);
page.innerHTML
共64条记录,每页10条,共7页,当前第1页 <a >首页</a> <a >上一页</a> <a herf='#' onclick='javascript:getPage(2);'>下一页</a> <a herf='#' onclick='javascript:getPage(7);'>尾页</a>