1、简介
Pager-taglib 2.0 是一套jsp分页标签库,可以灵活地实现多种不同风格的分页导航页面,也可以自定义风格样式。并且它可以很好的与服务器分页逻辑分离,它既可以对后台传入的集合进行分页,也可以从数据库中取出要显示那一页的数据。
2、标签介绍
1.pg:pager
这个标签用来设置分页的总体参数,一切分页标签都在其内工作。
2.pg:param
用来设置将要加入到URL的参数。使用Name属性指定即可,用于参数传递。
3.pg:index
这个标签说明分页条显示的内容,在这里你可以设置各种风格的分页显示方式。
4.pg:first
第一页标签
5.pg:pre
上一页标签
6.pg:pages
这个标签用来循环输出页码信息
7.pg:next
下一页标签
8.pg:last
最后一页标签
3、两种分页方式实例
首先把pager-taglib-2.0.jar放入工程的lib下。
然后在分页JSP中引入<%@ taglib uri="http://jsptags.com/tags/navigation/pager" prefix="pg"%>。
1、从后台传入List结果集,在页面上通过<pg:item>对List进行自动分页
<%@ taglib uri="http://jsptags.com/tags/navigation/pager" prefix="pg"%> <pg:pager url="${pageContext.request.contextPath}/sysParamAction.do" index="center" maxPageItems="10" maxIndexPages="10" isOffset="<%=false%>" export="pageOffset,currentPageNumber=pageNumber" scope="request"> <pg:param name="m" value="findSysparams" /> <table> <tr> <td colspan="2">XX列表</td> </tr> <tr> <td>XX</td> <td>XX</td> </tr> <c:forEach items="${list }" var="list" varStatus="listStatus"> <pg:item> <c:if test="${1 == listStatus.count % 2 }"> <tr class="tab_list_tr2" οnmοuseοver= this.className = 'tab_list_tr_hover';; onmouseOut= this.className = 'tab_list_tr2';;> </c:if> <c:if test="${0 == listStatus.count % 2 }"> <tr class="tab_list_tr" οnmοuseοver= this.className = 'tab_list_tr_hover';; onmouseOut= this.className = 'tab_list_tr';;> </c:if> <td>${list.xx }</td> <td>${list.xx }</td> </tr> </pg:item> </c:forEach> </table> <pg:index> <pg:first> <a href="<%=pageUrl%>"><img src="${ctx}/images/grid/firstPage.gif" border="0"></a> </pg:first> <pg:prev> <a href="<%=pageUrl%>"><img src="${ctx}/images/grid/prevPage.gif" border="0"></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%>"><img src="${ctx}/images/grid/nextPage.gif" border="0"></a> </pg:next> <pg:last> <a href="<%=pageUrl%>"><img src="${ctx}/images/grid/lastPage.gif" border="0"></a> </pg:last> 一共${fn:length(list) }条记录 </pg:index> </pg:pager>
2、通过把 pageSize,pageNo两参数传给后台进行数据库分页
与页面自行分页不同的是还需要给后台传两个参数。一个是pageNo(当前页数),可以在每一个PageUrl后面都加上&pageNo=<%= pageNumber %>。让我们的URL带上页码的参数,这样程序可以拿到页码去查找所需要的数据。另一个参数是pagesize,这个原本可以在url=”/PageAction.do?pagesize=5来做可是,<pg>标签不支持这样做,但它给我们提供了另一个传递变量的方法,<pg:param name=" pagesize " value="5" />。
<%@ taglib uri="http://jsptags.com/tags/navigation/pager" prefix="pg"%> <pg:pager items="${page.totalCount}" url="${pageContext.request.contextPath}/sysParamAction.do" index="center" maxPageItems="5" maxIndexPages="10" isOffset="<%=false%>" export="pageOffset,currentPageNumber=pageNumber" scope="request"> <pg:param name="m" value="findSysparams" /> <pg:param name="pagesize" value="5" /> <table> <tr> <td colspan="2">XX列表</td> </tr> <tr> <td>XX</td> <td>XX</td> </tr> <c:forEach items="${list }" var="list" varStatus="listStatus"> <c:if test="${1 == listStatus.count % 2 }"> <tr class="tab_list_tr2" οnmοuseοver= this.className = 'tab_list_tr_hover';; onmouseOut= this.className = 'tab_list_tr2';;> </c:if> <c:if test="${0 == listStatus.count % 2 }"> <tr class="tab_list_tr" οnmοuseοver= this.className = 'tab_list_tr_hover';; onmouseOut= this.className = 'tab_list_tr';;> </c:if> <td>${list.xx }</td> <td>${list.xx }</td> </tr> </c:forEach> </table> <pg:index> <pg:first> <a href="<%=pageUrl%>&pageNo=<%=pageNumber%>"><img src="${ctx}/images/grid/firstPage.gif" border="0"></a> </pg:first> <pg:prev> <a href="<%=pageUrl%>&pageNo=<%=pageNumber%>"><img src="${ctx}/images/grid/prevPage.gif" border="0"></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%>&pageNo=<%=pageNumber%>"><%=pageNumber%></a> </c:otherwise> </c:choose> </pg:pages> <pg:next> <a href="<%=pageUrl%>&pageNo=<%=pageNumber%>"><img src="${ctx}/images/grid/nextPage.gif" border="0"></a> </pg:next> <pg:last> <a href="<%=pageUrl%>&pageNo=<%=pageNumber%>"><img src="${ctx}/images/grid/lastPage.gif" border="0"></a> </pg:last> 一共${fn:length(list) }条记录 </pg:index> </pg:pager>