pager-taglib 使用方法 1、拷贝pager-taglib.jar包到你的应用的\WEB-INF\lib下; 2、在JSP页面中使用taglib指令引入pager-taglib标签库,一般会和jstl标记一起使用: <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <%@ taglib uri="http://jsptags.com/tags/navigation/pager" prefix="pg"%> 3、使用pager-taglib标签库进行分页处理 要分页的数据一般要从后台数据库取出,根据前台传入的要显示的页数参数p每次取一页数据,放入一个list中,在前台用类似下面语句取出。 <c:set var="results" value="$ {requestScope['tongji.pager'].list}" /> 然后用循环语句输出一页数据。 <c:forEach items="$ {results}" var="tj"> <table> <tr><td>编号:</td><td><c:out value="$ {tj.id}" /></td></tr> <tr><td>姓名:</td><td><c:out value="$ {tj.name}" /></td></tr> <tr><td>班级:</td><td><c:out value="$ {tj.classes}" default="没填" /></td> <tr><td>操作选项:</td><td><a href="$ {ctx}/admin/manageTongji?q=edit&id=$ {tj.id}">编辑</a> <a href="$ {ctx}/admin/manageTongji?q=delete&id=$ {tj.id}">删除</a></td> </tr> </table> </c:forEach> 下页就是写分页条了: <pg:pager url="/admin/getPage" items="$ {requestScope['tongji.pager'].maxElements}" maxPageItems="$ {initParam.pageSize}" maxIndexPages="10" export="offset,currentPageNumber=pageNumber"> <pg:param name="sa" value="N"/> <pg:index export="totalItems=itemCount"> <pg:page export="firstItem, lastItem"> <div> 显示结果<strong>$ {firstItem}-$ {lastItem}</strong> 共搜索到 <strong>$ {totalItems}</strong> 条记录 </div> </pg:page> <div> <span>Results:</span> <pg:prev export="pageUrl"> <a href="$ {pageUrl}&p=$ {currentPageNumber-1}">« Prev</a> </pg:prev> <pg:pages export="pageUrl,pageNumber,firstItem,lastItem"> <c:choose> <c:when test="$ {currentPageNumber eq pageNumber}"> <span>$ {firstItem}-$ {lastItem}</span> </c:when> <c:otherwise> <a href="$ {pageUrl}&p=$ {pageNumber}">$ {firstItem}-$ {lastItem}</a> </c:otherwise> </c:choose> </pg:pages> <pg:next export="pageUrl"> <a href="$ {pageUrl}&p=$ {currentPageNumber+1}">Next »</a></pg:next> </div> </pg:index> </pg:pager> <pg:pager>【这个标签用来设置分页的总体参数】重要参数说明: url:分页的链接根地址,pager标签会在这个链接上附加分页参数pager.offset,后台可根据这个参数分 页, 也可自行在URL上添加参数。 items:总记录数,pager标签正是根据这个值来计算分页参数的 maxPageItems:每页显示的行数,默认为10 maxIndexPages:在循环输出页码的时候,最大输出多少个页码,默认是10 export:这个属性比较重要,这个属性是让标签给你暴露什么变量,当然这些变量是有选择的,如在Pager标签里,可以暴露出来的变量有 pageOffset及pageNumber,即页码偏移量及页码。通过这两个变量名,可以在Jsp或Java里面从Request里获得。Export属性接受的值还有表达式, 如currentPage=pageNumber表示,把pageNumber的值暴露出来,并赋给一个叫CurrentPage的变量,这个变量将被保存到Request中,在Jsp或Java中可以得到。 <pg:param>这个标签很有用,用来设置将要加入到URL的参数,将传入后台。使用Name属性指定即可。 <pg:index>这个标签说明分页条显示的内容,它可以包含下面这些标记。 <pg:first>【第一页的标签】重要参数说明: export变量的意义: pageUrl - 分页链接URL地址(最重要的export参数) pageNumber - 页码 firstItem - 首页第一条记录的索引值 lastItem - 首页最后一条记录的索引值 <pg:prev>【上一页标签】重要参数说明: export变量的意义: pageUrl - 分页链接URL地址(最重要的export参数) pageNumber - 页码 <pg:next>【下一页标签】重要参数说明: export变量的意义: pageUrl - 分页链接URL地址(最重要的export参数) pageNumber - 页码 <pg:last>重要参数说明: export变量的意义: pageUrl - 分页链接URL地址(最重要的export参数) pageNumber - 页码 <pg:pages>【这个标签用来循环输出页码信息】重要参数说明: export变量的意义: pageUrl - 分页链接URL地址(最重要的export参数) pageNumber - 页码 firstItem - pageNumber这个页码指定的那一页的第一行的索引值 lastItem - pageNumber这个页码指定的那一页的最后一行的索引值 例: <pg:pager url="$ {ctx}/admin/getPage" items="$ {requestScope['tongji.pager'].maxElements}" maxPageItems="$ {initParam.pageSize}" maxIndexPages="10"> <pg:index> <pg:first unless="current"><a href="$ {pageUrl}&p=$ {pageNumber}">首页</a></pg:first> <pg:prev><a href="$ {pageUrl}&p=$ {pageNumber}">上一页($ {pageNumber})</a></pg:prev> <pg:pages><a href="$ {pageUrl}&p=$ {pageNumber}">$ {pageNumber}</a> </pg:pages> <pg:next><a href="$ {pageUrl}&p=$ {pageNumber}">下一页($ {pageNumber})</a></pg:next> <pg:last unless="current"><a href="$ {pageUrl}&p=$ {pageNumber}">尾页</a></pg:last> </pg:index> </pg:pager> |