page实体类:
public class Page<T> { private int perPageNum;// 每页的数据条数 private int pageNum;// 访问的哪一页 private int totalRecordsCount;// 总的数据条数 private int totalPageNum;// 总页数 private List<T> pageT;//每一页的所有实体数据,T为实体 }
调用实例:
// 分页查询 public Page pageQuery(int pageNum) throws Exception { int perPageNum = 10;// 每一页显示的数量 int totalRecordCount = schoolDaoImpl.schoolCount();// 总记录 int totalPageCount = (totalRecordCount + perPageNum - 1) / perPageNum;// 总页数 // 获得数据 List<School> schools = schoolDaoImpl.getSpecifyPageData((pageNum - 1) * perPageNum, perPageNum);
Page schoolPage = new Page(); schoolPage.setPageNum(pageNum); schoolPage.setPageT(schools); schoolPage.setPerPageNum(perPageNum); schoolPage.setTotalPageNum(totalPageCount); schoolPage.setTotalRecordsCount(totalRecordCount); return schoolPage; }
JSP中的分页实现:ps:page由上方调用实例填充到request的结果
<!-- 具体数据--> <table id="dynamic-table" class="table table-striped table-bordered table-hover"> <thead> <tr> <th>专业名称</th> <th>专业代码</th> <th>创建时间</th> </tr> </thead> <tbody> <c:forEach items="${page.pageT}" var="major"> <tr> <td>${major.majorName}</td> <td>${major.majorCode}</td> <td>${major.createDate}</td> </tr> </c:forEach> </tbody> </table> <!-- 数据下方的首页,第几页,尾页什么的--> <div class="center"> 第${page.pageNum}页/共${page.totalPageNum}页 <c:if test="${page.pageNum>1}"> <a href="<c:url value="/school/schIncluMajorsPage"/>?pageNum=1&schID=${jumpSchID}">首页</a> <a href="<c:url value="/school/schIncluMajorsPage"/>?pageNum=${page.pageNum-1}&schID=${jumpSchID}">上一页</a> </c:if> <%-- 计算begin、end --%> <c:choose> <%-- 如果总页数不足10页,那么把所有的页数都显示出来! --%> <c:when test="${page.pageNum <= 10 }"> <c:set var="begin" value="1" /> <c:set var="end" value="${page.totalPageNum}" /> </c:when> <c:otherwise> <%-- 当总页数>10时,通过公式计算出begin和end --%> <c:set var="begin" value="${page.pageNum-5 }" /> <c:set var="end" value="${page.pageNum+4 }" /> <%-- 头溢出 --%> <c:if test="${begin < 1 }"> <c:set var="begin" value="1" /> <c:set var="end" value="10" /> </c:if> <%-- 尾溢出 --%> <c:if test="${end > page.totalPageNum}"> <c:set var="begin" value="${page.totalPageNum - 9 }" /> <c:set var="end" value="${page.totalPageNum}" /> </c:if> </c:otherwise> </c:choose> <%-- 循环遍历页码列表 --%> <c:forEach var="i" begin="${begin }" end="${end }"> <c:choose> <c:when test="${i eq page.pageNum }">[${i }]</c:when> <c:otherwise> <a href="<c:url value="/school/schIncluMajorsPage"/>?pageNum=${i}&schID=${jumpSchID}">[${i }]</a> </c:otherwise> </c:choose> </c:forEach> <c:if test="${page.pageNum <page.totalPageNum }"> <a href="<c:url value="/school/schIncluMajorsPage"/>?pageNum=${page.pageNum+1}&schID=${jumpSchID}">下一页</a> <a href="<c:url value="/school/schIncluMajorsPage"/>?pageNum=${page.totalPageNum}&schID=${jumpSchID}">尾页</a> </c:if> </div>