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>

猜你喜欢

转载自blog.csdn.net/liubao616311/article/details/84072074