今天看到了一篇文章,写的是挺不错,网页分页也是做到了,但是确实很气人,这样做页面是可以分页,但是数据库也不能一下取出来10W条记录吧,这样就卡死了(师父说的话,一下给我pass了)。但是这里还是要分享一下,到时候重新弄sql就能出来效果了,废话不多说 上代码
// 设置页数
int pageNos;
// 获取不到页数或者获取到的页数小于1,页数为1,否则页数为传递过来的数据
if (req.getParameter("pageNos") == null
|| Integer.parseInt(req.getParameter("pageNos")) < 1) {
pageNos = 1;
} else {
pageNos = Integer.parseInt(req.getParameter("pageNos"));
}
req.getSession().setAttribute("pageNos", pageNos);
// 定义总页数(每页数据量是5条)
int countPage = PagingHelper.getPageCount(listUser.size(), 5);
req.getSession().setAttribute("countPage", countPage);
这个是获取页面数的代码
public static int getPageCount(int allSize,int singleSize){
if (allSize%singleSize!=0) {
return allSize/singleSize+1;
}
return allSize/singleSize;
}
控制页面上下页的代码(最好是弄出来所有页数,不想这个上一页,下一页这么弄)
<c:if test="${pageNos>1}">
<a
href="${pageContext.request.contextPath}/userControl?action=updateGradeList&pageNos=1">首页</a>
<a
href="${pageContext.request.contextPath}/userControl?action=updateGradeList&pageNos=${pageNos-1}">上一页</a>
</c:if>
<c:if test="${pageNos<countPage}">
<a
href="${pageContext.request.contextPath}/userControl?action=updateGradeList&pageNos=${pageNos+1}">下一页</a>
<a
href="${pageContext.request.contextPath}/userControl?action=updateGradeList&pageNos=${countPage}">末页</a>
</c:if>
在需要循环遍历的地方写上这个(如果想要一页显示多少数字,这里的*的数字就是几)
<c:forEach var="stu" items="${tempGradeUserList}" begin="${(pageNos-1)*5}" end="${pageNos*5-1}">
<tr>
<td>${stu.name}</td>
<td><a href="${pageContext.request.contextPath}/userControl?action=updateThisStuGrade&&stu_id=${stu.u_id}">修改</a></td>
</tr>
</c:forEach>