分页模型类: package selfimpr.page; import java.util.List; /** * 分页模型 * @param <T> 数据泛型 * @author selfimpr * @blog http://blog.csdn.net/lgg201 * @email lgg860911@yahoo.com.cn */ public class PageModel<T> { private int total; private int page; private int pagesize; private List<T> datas; /** * 总记录数 * @return */ public int getTotal() { return total; } public void setTotal(int total) { this.total = total; } /** * 数据 * @return */ public List<T> getDatas() { return datas; } public void setDatas(List<T> datas) { this.datas = datas; } /** * 当前页 * @return */ public int getPage() { return page; } public void setPage(int page) { this.page = page; } /** * 每页显示条数 * @return */ public int getPagesize() { return total; } public void setPagesize(int pagesize) { this.pagesize = pagesize; } /** * 总页数 * @return */ public int getTotalPage() { return (total + pagesize - 1) / pagesize; } /** * 下一页 * @return */ public int getNext() { int totalPage = getTotalPage(); return page >= totalPage ? totalPage : page + 1; } /** * 上一页 * @return */ public int getPrev() { return page <= 1 ? 1 : page - 1; } /** * 第一页 * @return */ public int getFirst() { return 1; } /** * 最后一页 * @return */ public int getLast() { return getTotalPage(); } /** * 获取当前页之前n页的页码 * @param n * @return */ public int[] getPrevN(int n) { int tmp = page - n; int start = tmp >= 1 ? tmp : 1; int size = page - start; int[] prevN = new int[size]; for(int i = 0; i < size; i ++) { prevN[i] = start ++; } return prevN; } /** * 获取当前页之后n页的页码 * @param n * @return */ public int[] getNextN(int n) { int tmp = page + n; int totalPage = getTotalPage(); int end = tmp <= totalPage ? tmp : totalPage; int size = end - page; int[] nextN = new int[size]; for(int i = 0; i < size; i ++) { nextN[i] = page + i + 1; } return nextN; } } 测试: package selfimpr.page; import junit.framework.TestCase; /** * 测试分页模型 * @author selfimpr * @blog http://blog.csdn.net/lgg201 * @email lgg860911@yahoo.com.cn */ public class TestPageModel extends TestCase { public void testPageModel() { PageModel<Object> pageModel = new PageModel<Object>(); pageModel.setTotal(108); pageModel.setPage(3); pageModel.setPagesize(10); System.out.println("First page: " + pageModel.getFirst()); System.out.println("Prev page: " + pageModel.getPrev()); System.err.println("Current page: " + pageModel.getPage()); System.out.println("Next page: " + pageModel.getNext()); System.out.println("Last page: " + pageModel.getLast()); System.out.println("Total page: " + pageModel.getTotalPage()); System.out.print("Prev 5 pages: "); int[] prevN = pageModel.getPrevN(5); for(Integer i: prevN) { System.out.print("[" + i + "]"); } System.out.println(); System.out.print("Next 5 pages: "); int[] nextN = pageModel.getNextN(5); for(Integer i: nextN) { System.out.print("[" + i + "]"); } System.out.println(); } }