33、分頁實現——分頁的頁面實現
阿新 • • 發佈:2018-12-03
學習目標:
1、掌握分頁頁面展示的邏輯
2、為根據業務需要靈活使用分頁演算法
學習過程:
有和後臺的dao層的實現,那麼頁面顯示就簡單多,這個實現就很多元化了,這裡我們使用簡單一點的方式。
一、修改servlet
servlet需要解釋前臺傳過來的當前頁變數,並同時把分頁物件傳給頁面展示,程式碼如下:
if (op == null || op.equals("list")) { int cp=1; String cpage=request.getParameter("cpage"); if(cpage!=null){ cp=Integer.parseInt(cpage); } // 查詢 Page page=new Page(); page.setCurrentPage(cp); List<User> users = userDao.getUserForPage(page); request.setAttribute("users", users); request.setAttribute("page", page); request.getRequestDispatcher("listuser.jsp").forward(request, response); }
二、頁面實現
開啟listuser.jsp頁面。在列表下面可以顯示分頁資訊和點選上一頁和下一頁等超連結。為了讓使用者又更好的體驗,在第一頁時不能點選上一頁,在最後一頁是不能點選下一頁,所這裡寫了一個條件判斷:
<table border="1" cellpadding="0" cellspacing="0"> <thead> <tr> <th height="25">序號</th> <th>使用者名稱</th> <th>性別</th> <th>基本操作</th> </tr> </thead> <tbody> <c:forEach items="${users }" var="user" varStatus="status"> <tr> <td>${status.index+1 }</td> <td>${user.username }</td> <td><c:choose> <c:when test="${user.sex eq 1 }">男</c:when> <c:otherwise>女</c:otherwise> </c:choose></td> <td><a href="admin/userServlet?op=delete&uid=${user.userId} " onclick="return confirm('你真的要刪除嗎?')">刪除</a> | <a href="admin/userServlet?op=toupdate&uid=${user.userId}">修改</a></td> </tr> </c:forEach> </tbody> </table> 共有 ${page.itemCount } 條資料,每頁顯示${page.pageSize }條 當前是第 ${page.currentPage } 頁 ,共有 ${page.pageCount }頁 <c:choose> <c:when test="${page.currentPage>1 }"> <a href="admin/userServlet?op=list&cpage=${page.currentPage-1 }">上一頁</a> </c:when> <c:otherwise> <a>上一頁</a> </c:otherwise> </c:choose> <c:choose> <c:when test="${page.currentPage<page.pageCount }"> <a href="admin/userServlet?op=list&cpage=${page.currentPage+1 }">下一頁</a> </c:when> <c:otherwise> <a>下一頁</a> </c:otherwise> </c:choose>