JSP标签之pager-taglib分页标签

前言:现在进行的项目分页使用了pager-taglib分页标签,个人觉得用起来挺方便的。一、简介Pager-taglib 2.0 是一套jsp分页标签库,可以灵...
前言:现在进行的项目分页使用了pager-taglib分页标签,个人觉得用起来挺方便的。

一、简介

Pager-taglib 2.0 是一套jsp分页标签库,可以灵活地实现多种不同风格的分页导航页面,也可以自定义风格样式。并且它可以很好的与服务器分页逻辑分离,它既可以对后台传入的集合进行分页,也可以从数据库中取出要显示那一页的数据。

二、标签介绍

pg:pager 这个标签用来设置分页的总体参数,一切分页标签都在其内工作。

  url:分页的链接根地址,pager标签会在这个链接的基础上附加分页参数
  items:总记录数,pager标签正是根据这个值来计算分页参数的
  maxPageItems:每页显示的行数,默认为10
  maxIndexPages:在循环输出页码的时候,最大输出多少个页码,默认是10

  isOffset:与pg:item配套使用 
  export:这个属性比较重要,文档也对此作好相对长篇幅的说明。这个属性是让标签给你暴露什么变量,当然这些变量是有选择的,如在Pager标签里,可以暴露出来的变量有pageOffset及pageNumber,即页码偏移量及页码。通过这两个变量名,可以在Jsp或Java里面从Request里获得。Export属性接受的值还有表达式,如currentPage=pageNumber表示,把pageNumber的值暴露出来,并赋给一个叫CurrentPage的变量,这个变量将被保存到Request中,在Jsp或Java中可以得到。

<pg:param>用来设置将要加入到URL的参数。使用Name属性指定即可,用于参数传递。

<pg:index>这个标签说明分页条显示的内容,在这里你可以设置各种风格的分页显示方式。
pg:first 第一页标签
  pageUrl - 分页链接URL地址
  pageNumber - 页码
  firstItem - 首页第一行的索引值
  lastItem - 首页最后一行的索引值
pg:pre 上一页标签
  pageUrl - 分页链接URL地址
  pageNumber - 页码
  firstItem - 前页第一行的索引值
  lastItem - 前页最后一行的索引值
pg:pages 这个标签用来循环输出页码信息
  pageUrl - 分页链接URL地址
  pageNumber - 页码
  firstItem - pageNumber这个页码指定的那一页的第一行的索引值
  lastItem - pageNumber这个页码指定的那一页的最后一行的索引值
pg:next 下一页标签
  pageUrl - 分页链接URL地址
  pageNumber - 页码
  firstItem - 下页第一行的索引值
  lastItem - 下页最后一行的索引值
pg:last 最后一页标签
  pageUrl - 分页链接URL地址
  pageNumber - 页码
  firstItem - 尾页第一行的索引值
  lastItem - 尾页最后一行的索引值

三、两种分页方式实例

首先把pager-taglib-2.0.jar放入工程的lib下。

然后在分页JSP中引入<%@ taglib uri="http://jsptags.com/tags/navigation/pager" prefix="pg"%>。

1、从后台传入List结果集,在页面上通过<pg:item>对List进行自动分页
 

  1. <%@ taglib uri="http://jsptags.com/tags/navigation/pager" prefix="pg"%> 
  2.  
  3. <pg:pager url="${pageContext.request.contextPath}/sysParamAction.do" index="center" 
  4.     maxPageItems="10" maxIndexPages="10" isOffset="<%=false%>" 
  5.     export="pageOffset,currentPageNumber=pageNumber" scope="request"> 
  6.     <pg:param name="m" value="findSysparams" /> 
  7.  
  8.     <table> 
  9.         <tr> 
  10.             <td colspan="2">XX列表</td> 
  11.         </tr> 
  12.         <tr> 
  13.             <td>XX</td> 
  14.             <td>XX</td> 
  15.         </tr> 
  16.         <c:forEach items="${list }" var="list" varStatus="listStatus"> 
  17.             <pg:item> 
  18.                 <c:if test="${1 == listStatus.count % 2 }"> 
  19.                     <tr class="tab_list_tr2"  
  20.                         onmouseoverthis.className = 'tab_list_tr_hover';; 
  21.                         onmouseOutthis.className = 'tab_list_tr2';;> 
  22.                 </c:if> 
  23.                 <c:if test="${0 == listStatus.count % 2 }"> 
  24.                     <tr class="tab_list_tr" 
  25.                         onmouseoverthis.className = 'tab_list_tr_hover';; 
  26.                         onmouseOutthis.className = 'tab_list_tr';;> 
  27.                 </c:if> 
  28.                     <td>${list.xx }</td> 
  29.                     <td>${list.xx }</td> 
  30.                 </tr> 
  31.             </pg:item> 
  32.         </c:forEach> 
  33.     </table> 
  34.  
  35.     <pg:index> 
  36.         <pg:first> 
  37.             <a href="<%=pageUrl%>"><img src="${ctx}/images/grid/firstPage.gif" border="0"></a> 
  38.         </pg:first> 
  39.         <pg:prev> 
  40.             <a href="<%=pageUrl%>"><img src="${ctx}/images/grid/prevPage.gif" border="0"></a> 
  41.         </pg:prev> 
  42.         <pg:pages> 
  43.             <c:choose> 
  44.                 <c:when test="${pageNumber eq currentPageNumber}"> 
  45.                     <font color="red">[<%=pageNumber%>]</font> 
  46.                 </c:when> 
  47.                 <c:otherwise> 
  48.                     <a href="<%=pageUrl%>"><%=pageNumber%></a> 
  49.                 </c:otherwise> 
  50.             </c:choose> 
  51.         </pg:pages> 
  52.         <pg:next> 
  53.             <a href="<%=pageUrl%>"><img src="${ctx}/images/grid/nextPage.gif" border="0"></a> 
  54.         </pg:next> 
  55.         <pg:last> 
  56.             <a href="<%=pageUrl%>"><img src="${ctx}/images/grid/lastPage.gif" border="0"></a> 
  57.         </pg:last> 
  58.         一共${fn:length(list) }条记录 
  59.     </pg:index> 
  60. </pg:pager> 

2、通过把 pageSize,pageNo两参数传给后台进行数据库分页

  与页面自行分页不同的是还需要给后台传两个参数。一个是pageNo(当前页数),可以在每一个PageUrl后面都加上&pageNo=<%= pageNumber %>。让我们的URL带上页码的参数,这样程序可以拿到页码去查找所需要的数据。另一个参数是pagesize,这个原本可以在url=”/PageAction.do?pagesize=5来做可是,<pg>标签不支持这样做,但它给我们提供了另一个传递变量的方法,<pg:param name=" pagesize " value="5" />。

  1. <%@ taglib uri="http://jsptags.com/tags/navigation/pager" prefix="pg"%> 
  2.  
  3. <pg:pager items="${page.totalCount}" url="${pageContext.request.contextPath}/sysParamAction.do"  
  4.         index="center" maxPageItems="5" maxIndexPages="10" isOffset="<%=false%>" 
  5.         export="pageOffset,currentPageNumber=pageNumber" scope="request"> 
  6.     <pg:param name="m" value="findSysparams" /> 
  7.     <pg:param name="pagesize"  value="5" /> 
  8.  
  9.     <table> 
  10.         <tr> 
  11.             <td colspan="2">XX列表</td> 
  12.         </tr> 
  13.         <tr> 
  14.             <td>XX</td> 
  15.             <td>XX</td> 
  16.         </tr> 
  17.         <c:forEach items="${list }" var="list" varStatus="listStatus"> 
  18.             <c:if test="${1 == listStatus.count % 2 }"> 
  19.                 <tr class="tab_list_tr2"  
  20.                     onmouseoverthis.className = 'tab_list_tr_hover';; 
  21.                     onmouseOutthis.className = 'tab_list_tr2';;> 
  22.             </c:if> 
  23.             <c:if test="${0 == listStatus.count % 2 }"> 
  24.                 <tr class="tab_list_tr" 
  25.                     onmouseoverthis.className = 'tab_list_tr_hover';; 
  26.                     onmouseOutthis.className = 'tab_list_tr';;> 
  27.             </c:if> 
  28.                 <td>${list.xx }</td> 
  29.                 <td>${list.xx }</td> 
  30.             </tr> 
  31.         </c:forEach> 
  32.     </table> 
  33.  
  34.     <pg:index> 
  35.         <pg:first> 
  36.             <a href="<%=pageUrl%>&pageNo=<%=pageNumber%>"><img src="${ctx}/images/grid/firstPage.gif" border="0"></a> 
  37.         </pg:first> 
  38.         <pg:prev> 
  39.             <a href="<%=pageUrl%>&pageNo=<%=pageNumber%>"><img src="${ctx}/images/grid/prevPage.gif" border="0"></a> 
  40.         </pg:prev> 
  41.         <pg:pages> 
  42.             <c:choose> 
  43.                 <c:when test="${pageNumber eq currentPageNumber}"> 
  44.                     <font color="red">[<%=pageNumber%>]</font> 
  45.                 </c:when> 
  46.                 <c:otherwise> 
  47.                     <a href="<%=pageUrl%>&pageNo=<%=pageNumber%>"><%=pageNumber%></a> 
  48.                 </c:otherwise> 
  49.             </c:choose> 
  50.         </pg:pages> 
  51.         <pg:next> 
  52.             <a href="<%=pageUrl%>&pageNo=<%=pageNumber%>"><img src="${ctx}/images/grid/nextPage.gif" border="0"></a> 
  53.         </pg:next> 
  54.         <pg:last> 
  55.             <a href="<%=pageUrl%>&pageNo=<%=pageNumber%>"><img src="${ctx}/images/grid/lastPage.gif" border="0"></a> 
  56.         </pg:last> 
  57.         一共${fn:length(list) }条记录 
  58.     </pg:index> 
  59. </pg:pager> 

 


你可能感兴趣的:(JSP标签之pager-taglib分页标签)