搞定分页显示

在实际应用中,由于优化缓存以及提高页面加载速度,在一个页面中有较多的记录数时,我们可以分页显示,一个页面只显示一定数目的记录,这在我们浏览网页的时候是非常常见的,今天我们就来初步上手一下jsp之分页显示。

jsp分页显示的具体思路是:首先获取总的记录数,然后自定义一个理想的每页显示记录数,通过这两个记录数可以得到总的页面数,再定义一个记录当前显示的页面数,在显示记录时,首先使通过数据库获得的结果集定位到当前要显示页的第一条记录,然后依次显示出一定数目的记录(就是上面提到的理想的每页显示记录数)。那么怎样得到当前要显示的页面数呢?我们可以定义一个字符串变量,通过request类的方法获取当前传递的页面数。

方法有了,下面就是具体实现的重要步骤。

且看以下代码:

		result.last();  //移动到最后一个记录
		int allItem = result.getRow();//获取最后一个记录的顺序数,即总的记录数
		int pageSize = 5;//每页的记录数
		int currentPage;//当前页面数
		int totalPage = (allItem/pageSize);//总页面数
		if(allItem%pageSize != 0){
			totalPage += 1;
		}
		request.setCharacterEncoding("utf-8");
		String strPage = request.getParameter("page");
		if(strPage == null){
			currentPage = 1;
		}else{
			currentPage = Integer.parseInt(strPage);
		}

第一行代码是不可缺少的,只有移动到最后一个记录,才可以获取到总的记录数,缺少这句,那么allItem将会等于1;后面的代码中“page”是页面数据传递的一个变量,通过这个变量,点击“下一页”、“上一页”等就会传递当前页面信息,不清晰没有关系,继续往后看。

且看下面这段代码:

	<%
		if(currentPage>1){
	%>
		<a href="Paging.jsp?page=1">第一页</a>
		<a href="Paging.jsp?page=<%= currentPage-1%>">上一页</a>
	<%
		}	
	%>
	<% 
		if(currentPage<totalPage){
	%>
	 
		<a href="Paging.jsp?page=<%= currentPage+1%>">下一页</a>
		<a href="Paging.jsp?page=<%= totalPage %>">最后一页</a>
	<%	
		}
	%>


现在应该很清晰了,通过点击“第一页”,通过“page”传递参数,获得当前页面数,至于if语句中的条件判断,这也是很容易理解的,不然的话currentPage一直加或者一直减肯定会超出范围。只有在当前页面数大于1时,才给显示“下一页”、“最后一页”的链接,只有在当前页面数小于总的页面数时,才给显示“上一页”、“第一页”的链接。

然后就是负责显示的代码段了,且看以下代码:

		//显示当前页面的记录
		result.absolute((currentPage-1)*pageSize+1);
		int i = 0;
		while(i<pageSize && !result.isAfterLast()){
			out.println(result.getInt("id")+"---"+result.getString("name")+"---"+result.getInt("age")+"<br>");
			i++;
			result.next();
		}


关键在于absolute方法,通过这个方法移动到指定的记录数,我认为这是jsp分页显示的核心所在!至于!result.isAfterLast(),这是必须的,因为当前页是否有足够的记录填满显示是不确定的。

下面看一下结果吧:

数据库端:


 

运行结果:

页面简陋,将就着看吧。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值