分页是比较常用的一种技术,也有很多实现方法。我介绍一下如何用pager-taglib来分页
转:
Pager-taglib 2.0 是一套分页标签库,可以灵活地实现多种不同风格的分页导航页面,并且可以很好的与服务器分页逻辑分离。这样一套标签库,你想你的分页效果怎样就能怎样。
pager-taglib,可以方便的帮我们完成分页的功能,当然大家不要担心他的效率,它支持每次从数据库中只取出要显示的数据,这样可以减少数据库的压力。
简单说一下它的怎么使用:
1、拷贝pager-taglib.jar包
2、在JSP页面中使用taglib指令引入pager-taglib标签库
3、使用pager-taglib标签库进行分页处理
pg:pager【这个标签用来设置分页的总体参数】重要参数说明:
url:分页的链接根地址,pager标签会在这个链接的基础上附加分页参数
items:总记录数,pager标签正是根据这个值来计算分页参数的
maxPageItems:每页显示的行数,默认为10
maxIndexPages:在循环输出页码的时候,最大输出多少个页码,默认是10
pg:first【第一页的标签】重要参数说明:
export变量的意义:
pageUrl - 分页链接URL地址(最重要的export参数)
pageNumber - 页码
firstItem - 首页第一行的索引值
lastItem - 首页最后一行的索引值
pg:pre【上一页标签】重要参数说明:
export变量的意义:
pageUrl - 分页链接URL地址(最重要的export参数)
pageNumber - 页码
firstItem - 前页第一行的索引值
lastItem - 前页最后一行的索引值
pg:next【下一页标签】重要参数说明:
export变量的意义:
pageUrl - 分页链接URL地址(最重要的export参数)
pageNumber - 页码
firstItem - 下页第一行的索引值
lastItem - 下页最后一行的索引值
pg:last重要参数说明:
export变量的意义:
pageUrl - 分页链接URL地址(最重要的export参数)
pageNumber - 页码
firstItem - 尾页第一行的索引值
lastItem - 尾页最后一行的索引值
pg:pages【这个标签用来循环输出页码信息】重要参数说明:
export变量的意义:
pageUrl - 分页链接URL地址(最重要的export参数)
pageNumber - 页码
firstItem - pageNumber这个页码指定的那一页的第一行的索引值
lastItem - pageNumber这个页码指定的那一页的最后一行的索引值
简单的一个网页标签的使用:
<pg:pager items="1001" export="currentPageNumber=pageNumber">
<pg:first><a href="${pageUrl}">首页</a></pg:first>
<pg:prev><a href="${pageUrl}">前页</a></pg:prev>
<pg:pages>
<c:choose>
<c:when test="${pageNumber eq currentPageNumber }">
<font color="red">${pageNumber }</font>
</c:when>
<c:otherwise>
<a href="${pageUrl }">${pageNumber}</a>
</c:otherwise>
</c:choose>
</pg:pages>
<pg:next><a href="${pageUrl}">下页</a></pg:next>
<pg:last><a href="${pageUrl}">尾页</a></pg:last>
</pg:pager>
需要注意的地方:很重要,我就是在这里翻了跟头了的
1.Pager-taglib向页面传的参数是:pager.offset,这个参数的意思是页面的偏移量,也就是指你说选择的页面的页数。这个参数貌似从0开始,也就是你选择第一页的话它传的参数是0.所以在捕获这个参数的时候要记得+1.
2.这个标签的使用其实很简单,你要做的就是简单地写一个控制文件,可以是servlet,可以是portlet,也可以直接放在jsp里,然后去页面捕捉pager.offset这个参数去数据库中重新挖取数据。
3.切记,offset传过来的值是偏移量,也就是指下一堆记录的第一条的偏移量,比如你的记录/页pageSize=3,那么传过来的offset应该如下处理:offset/3+1 这样得到的就是要生成的页数!
offset/