独立出的分页jsp

本文介绍了如何将分页展示代码从JSP页面中抽象出来,创建一个独立的分页组件,以便在多个页面中复用。通过在请求中传递包含分页信息的Pager类,如当前页、总页数、每页大小等,可以简化其他Action中的分页处理,特别是在进行如学生列表按名称查询等操作时。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用Pager类已经很方便了,但是在jsp页面里还是要重复的写分页的展示,在此把分页的jsp页面抽离出来,可以在别的页面中直接include

注:pager是放入request中的分页类,里面含有各种分页的信息,其中pageNumber是当前页码,totalCount是数据总条数,totalPages是总页数,pageSize是每页显示数据条数,navigatePageNumbers是存放导航页的数组。

<%@ page language="java" pageEncoding="UTF-8"%>
<%@ include file="/WEB-INF/page/share/taglib.jsp"%>
<!-- 通用的分页页面,通过调用需要分页的页面里的js:toPage函数,将将要到达的页面页码给函数,让页面里的表单提交到相应的页码页面 -->
<font color="#FFFFFF"> 
当前页:第${pager.pageNumber}页 | 总记录数:${pager.totalCount}条 | 每页显示:${pager.pageSize}条 | 总页数:${pager.totalPages}页
</font>
<c:if test="${pager.pageNumber > 1}">
	<a href="javascript:topage('${pager.pageNumber-1}')"
		class="a03">上一页</a>
</c:if>

<c:forEach items="${pager.navigatePageNumbers }" var="navi">
	<c:if test="${pager.pageNumber==navi}">
		<b><font color="#FFFFFF">第${navi}页</font> </b>
	</c:if>
	<c:if test="${pager.pageNumber!=navi}">
		<a href="javascript:topage('${navi}')"
			class="a03">第${navi}页</a>
	</c:if>
</c:forEach>
<c:if test="${pager.pageNumber < pager.totalPages}">
	<a href="javascript:topage('${pager.pageNumber+1}')"
		class="a03">下一页</a>
</c:if>
这个页面算是我觉得真正意义上的通用jsp分页页面了(目前我所能达到的水平),但如果需要进行查询操作,而很多人的查询操作和列表往往是同一个页面(只需要添加一个查询条件过滤就可以将列表action变成查询结果action,因此页面也是同一个),那么怎么在查询结果里分页呢?

那问题也好解决:只要在相应的action里,比如获取学生列表,查询条件是name,那么查询操作会在这里进行:

if(name != null && !name.equals("")) {
    //1.在sql查询里添加name项然后获得最终已经分页好的数据
    //2.初始化分页工具类pager,并且将查询获得的list设入pager.list
    //3.将pager对象设入request
    //4.将附加的查询链接设入request:request.setAttribute("queryUrl", "name=" + name);
}
在页面中展示学生列表的form的action里的提交地址后面加上${queryUrl}即可,如果有查询条件,跳转分页时自动会跟上查询的条件,即使查询结果多到已经分页仍然可以正确的在结果里分页。




评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值