1. 程式人生 > >33、分頁實現——分頁的頁面實現

33、分頁實現——分頁的頁面實現

學習目標:

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>