模擬網頁分頁(注意,這裏還是取出來數據庫的全部內容,其實應該分頁獲取)

今天看到了一篇文章,寫的是挺不錯,網頁分頁也是做到了,但是確實很氣人,這樣做頁面是可以分頁,但是數據庫也不能一下取出來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>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章