pager-taglib分页開始~

查了好多关于分页的技术,终于选定下面方法实现~

1.首先下载jar包:pager-taglib.jar,pager-taglib.jar放在WEB-INF/lib文件夹下;

下载地址:http://download.csdn.net/detail/jeofey/8641287

2.将pager-taglib.tld文件放在WEB-INF文件夹下,pager-taglib.tld文件的内容见文章末尾;

3.仅仅粘贴实现分页的关键部分

jsp中:

[html] view
plain
copy

  1. 标签库:
  2. <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
  3. <%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
  4. <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
  5. <%@taglib uri="http://jsptags.com/tags/navigation/pager" prefix="pg" %>
  6. 实现分页用的几个变量:
  7. <%
  8. int currentPage = Integer.parseInt((String)request.getAttribute("page"));
  9. int pageSize=25;
  10. int resultCount = Integer.parseInt((String)request.getAttribute("resultCount"));
  11. int pageCount=((resultCount - 1)/pageSize) + 1;
  12. currentPage=Math.min(currentPage, pageCount);
  13. int offset=(currentPage -1) * pageSize;
  14. int totalpage = (resultCount % pageSize  == 0) ? resultCount / pageSize
  15. : (resultCount / pageSize) + 1;
  16. %>
  17. 分页标记開始(为了显示清晰。放在div里面):
  18. <div>
  19. <!-- 分页标记開始 -->
  20. <ul style="float:right">
  21. <pg:pager
  22. items="<%= resultCount %>"
  23. offset="<%= offset %>"
  24. index="center"
  25. maxPageItems="<%=pageSize%>"
  26. maxIndexPages="10"
  27. isOffset="false"
  28. export="currentPageNumber=pageNumber"
  29. scope="request">
  30. <pg:index export="totalItems=itemCount">
  31. <% if(((Integer)currentPageNumber).intValue() != 1) { %>
  32. <pg:first>
  33. <li><a href="/PageProject/directcity/alllist/tj/<%= pageNumber %>.html">首页</a></li>
  34. </pg:first>
  35. <%}%>
  36. <pg:prev>
  37. <li><a href="/PageProject/directcity/alllist/tj/<%= pageNumber %>.html">上一页</a></li>
  38. </pg:prev>
  39. <pg:pages>
  40. <% if(pageNumber == currentPageNumber) { %>
  41. <li class="ifpon"><span><%= pageNumber %></span></li>
  42. <% } else { %>
  43. <li><a href="/PageProject/directcity/alllist/tj/<%= pageNumber %>.html"><%= pageNumber %></a></li>
  44. <% } %>
  45. </pg:pages>
  46. <pg:next>
  47. <li><a href="/PageProject/directcity/alllist/tj/<%= pageNumber %>.html">下一页</a></li>
  48. </pg:next>
  49. <% if(((Integer)currentPageNumber).intValue() != totalpage) { %>
  50. <pg:last>
  51. <li><a href="/PageProject/directcity/alllist/tj/<%= pageNumber %>.html">尾页</a></li>
  52. </pg:last>
  53. <%}%>
  54. <pg:page export="firstItem, lastItem"></pg:page>
  55. </pg:index>
  56. </pg:pager>
  57. </ul>
  58. <!-- 分页标记结束 -->
  59. </div>

SQL语句:

  1. 例1 :select * from (
  2. select top pageSize * from (
  3. select top offset + pageSize  *
  4. from ( select * from 表1 union all  select * from 表2 union all  select * from 表3)   ) result
  5. where 条件
  6. order by 排序字段 desc )a  order by 排序字段 asc )b order by 排序字段 desc
  7. 例2:  select   top  pageSize   *   from   表   where   主键   not   in(select   top   (currentPage-1)*pageSize      news_id   from   表)

最后插张调试结果的图片:

pager-taglib.tld文件内容:

[plain] view
plain
copy

  1. <?

    xml version="1.0" encoding="ISO-8859-1" ?

    >

  2. <!DOCTYPE taglib
  3. PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN"
  4. "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">
  5. <taglib>
  6. <tlibversion>1.0</tlibversion>
  7. <jspversion>1.1</jspversion>
  8. <shortname>pg</shortname>
  9. <uri>http://jsptags.com/tags/navigation/pager</uri>
  10. <info>
  11. The Pager Tag Library is the easy and flexible way to implement paging of
  12. large data sets in JavaServer Pages (JSP). It can emulate all currently
  13. known paging styles with minimal effort. It also includes re-usable index
  14. styles that emulate the search result navigators of popular web sites
  15. such as Google[sm], AltaVista® and Yahoo!. The Pager Tag Library does most
  16. of the work for you by dynamically organizing your data set into pages and
  17. generating a browsable index with virtually any look desired.
  18. </info>
  19. <tag>
  20. <name>pager</name>
  21. <tagclass>com.jsptags.navigation.pager.PagerTag</tagclass>
  22. <teiclass>com.jsptags.navigation.pager.PagerTagExtraInfo</teiclass>
  23. <bodycontent>JSP</bodycontent>
  24. <attribute>
  25. <name>id</name>
  26. <required>false</required>
  27. <rtexprvalue>true</rtexprvalue>
  28. </attribute>
  29. <attribute>
  30. <name>url</name>
  31. <required>false</required>
  32. <rtexprvalue>true</rtexprvalue>
  33. </attribute>
  34. <attribute>
  35. <name>items</name>
  36. <required>false</required>
  37. <rtexprvalue>true</rtexprvalue>
  38. </attribute>
  39. <attribute>
  40. <name>offset</name>
  41. <required>false</required>
  42. <rtexprvalue>true</rtexprvalue>
  43. </attribute>
  44. <attribute>
  45. <name>maxItems</name>
  46. <required>false</required>
  47. <rtexprvalue>true</rtexprvalue>
  48. </attribute>
  49. <attribute>
  50. <name>maxPageItems</name>
  51. <required>false</required>
  52. <rtexprvalue>true</rtexprvalue>
  53. </attribute>
  54. <attribute>
  55. <name>maxIndexPages</name>
  56. <required>false</required>
  57. <rtexprvalue>true</rtexprvalue>
  58. </attribute>
  59. <attribute>
  60. <name>isOffset</name>
  61. <required>false</required>
  62. <rtexprvalue>true</rtexprvalue>
  63. </attribute>
  64. <attribute>
  65. <name>index</name>
  66. <required>false</required>
  67. <rtexprvalue>true</rtexprvalue>
  68. </attribute>
  69. <attribute>
  70. <name>export</name>
  71. <required>false</required>
  72. <rtexprvalue>true</rtexprvalue>
  73. </attribute>
  74. <attribute>
  75. <name>scope</name>
  76. <required>false</required>
  77. <rtexprvalue>true</rtexprvalue>
  78. </attribute>
  79. </tag>
  80. <tag>
  81. <name>param</name>
  82. <tagclass>com.jsptags.navigation.pager.ParamTag</tagclass>
  83. <bodycontent>empty</bodycontent>
  84. <attribute>
  85. <name>id</name>
  86. <required>false</required>
  87. <rtexprvalue>true</rtexprvalue>
  88. </attribute>
  89. <attribute>
  90. <name>name</name>
  91. <required>true</required>
  92. <rtexprvalue>true</rtexprvalue>
  93. </attribute>
  94. <attribute>
  95. <name>value</name>
  96. <required>false</required>
  97. <rtexprvalue>true</rtexprvalue>
  98. </attribute>
  99. </tag>
  100. <tag>
  101. <name>item</name>
  102. <tagclass>com.jsptags.navigation.pager.ItemTag</tagclass>
  103. <bodycontent>JSP</bodycontent>
  104. <attribute>
  105. <name>id</name>
  106. <required>false</required>
  107. <rtexprvalue>true</rtexprvalue>
  108. </attribute>
  109. </tag>
  110. <tag>
  111. <name>index</name>
  112. <tagclass>com.jsptags.navigation.pager.IndexTag</tagclass>
  113. <teiclass>com.jsptags.navigation.pager.IndexTagExtraInfo</teiclass>
  114. <bodycontent>JSP</bodycontent>
  115. <attribute>
  116. <name>id</name>
  117. <required>false</required>
  118. <rtexprvalue>true</rtexprvalue>
  119. </attribute>
  120. <attribute>
  121. <name>export</name>
  122. <required>false</required>
  123. <rtexprvalue>false</rtexprvalue>
  124. </attribute>
  125. </tag>
  126. <tag>
  127. <name>first</name>
  128. <tagclass>com.jsptags.navigation.pager.FirstTag</tagclass>
  129. <teiclass>com.jsptags.navigation.pager.JumpTagExtraInfo</teiclass>
  130. <bodycontent>JSP</bodycontent>
  131. <attribute>
  132. <name>id</name>
  133. <required>false</required>
  134. <rtexprvalue>true</rtexprvalue>
  135. </attribute>
  136. <attribute>
  137. <name>export</name>
  138. <required>false</required>
  139. <rtexprvalue>false</rtexprvalue>
  140. </attribute>
  141. <attribute>
  142. <name>unless</name>
  143. <required>false</required>
  144. <rtexprvalue>true</rtexprvalue>
  145. </attribute>
  146. </tag>
  147. <tag>
  148. <name>prev</name>
  149. <tagclass>com.jsptags.navigation.pager.PrevTag</tagclass>
  150. <teiclass>com.jsptags.navigation.pager.PageTagExtraInfo</teiclass>
  151. <bodycontent>JSP</bodycontent>
  152. <attribute>
  153. <name>id</name>
  154. <required>false</required>
  155. <rtexprvalue>true</rtexprvalue>
  156. </attribute>
  157. <attribute>
  158. <name>export</name>
  159. <required>false</required>
  160. <rtexprvalue>false</rtexprvalue>
  161. </attribute>
  162. <attribute>
  163. <name>ifnull</name>
  164. <required>false</required>
  165. <rtexprvalue>true</rtexprvalue>
  166. </attribute>
  167. </tag>
  168. <tag>
  169. <name>page</name>
  170. <tagclass>com.jsptags.navigation.pager.PageTag</tagclass>
  171. <teiclass>com.jsptags.navigation.pager.JumpTagExtraInfo</teiclass>
  172. <bodycontent>JSP</bodycontent>
  173. <attribute>
  174. <name>id</name>
  175. <required>false</required>
  176. <rtexprvalue>true</rtexprvalue>
  177. </attribute>
  178. <attribute>
  179. <name>export</name>
  180. <required>false</required>
  181. <rtexprvalue>false</rtexprvalue>
  182. </attribute>
  183. </tag>
  184. <tag>
  185. <name>pages</name>
  186. <tagclass>com.jsptags.navigation.pager.PagesTag</tagclass>
  187. <teiclass>com.jsptags.navigation.pager.PageTagExtraInfo</teiclass>
  188. <bodycontent>JSP</bodycontent>
  189. <attribute>
  190. <name>id</name>
  191. <required>false</required>
  192. <rtexprvalue>true</rtexprvalue>
  193. </attribute>
  194. <attribute>
  195. <name>export</name>
  196. <required>false</required>
  197. <rtexprvalue>false</rtexprvalue>
  198. </attribute>
  199. </tag>
  200. <tag>
  201. <name>next</name>
  202. <tagclass>com.jsptags.navigation.pager.NextTag</tagclass>
  203. <teiclass>com.jsptags.navigation.pager.PageTagExtraInfo</teiclass>
  204. <bodycontent>JSP</bodycontent>
  205. <attribute>
  206. <name>id</name>
  207. <required>false</required>
  208. <rtexprvalue>true</rtexprvalue>
  209. </attribute>
  210. <attribute>
  211. <name>export</name>
  212. <required>false</required>
  213. <rtexprvalue>false</rtexprvalue>
  214. </attribute>
  215. <attribute>
  216. <name>ifnull</name>
  217. <required>false</required>
  218. <rtexprvalue>true</rtexprvalue>
  219. </attribute>
  220. </tag>
  221. <tag>
  222. <name>last</name>
  223. <tagclass>com.jsptags.navigation.pager.LastTag</tagclass>
  224. <teiclass>com.jsptags.navigation.pager.JumpTagExtraInfo</teiclass>
  225. <bodycontent>JSP</bodycontent>
  226. <attribute>
  227. <name>id</name>
  228. <required>false</required>
  229. <rtexprvalue>true</rtexprvalue>
  230. </attribute>
  231. <attribute>
  232. <name>export</name>
  233. <required>false</required>
  234. <rtexprvalue>false</rtexprvalue>
  235. </attribute>
  236. <attribute>
  237. <name>unless</name>
  238. <required>false</required>
  239. <rtexprvalue>true</rtexprvalue>
  240. </attribute>
  241. </tag>
  242. <tag>
  243. <name>skip</name>
  244. <tagclass>com.jsptags.navigation.pager.SkipTag</tagclass>
  245. <teiclass>com.jsptags.navigation.pager.PageTagExtraInfo</teiclass>
  246. <bodycontent>JSP</bodycontent>
  247. <attribute>
  248. <name>id</name>
  249. <required>false</required>
  250. <rtexprvalue>true</rtexprvalue>
  251. </attribute>
  252. <attribute>
  253. <name>export</name>
  254. <required>false</required>
  255. <rtexprvalue>false</rtexprvalue>
  256. </attribute>
  257. <attribute>
  258. <name>ifnull</name>
  259. <required>false</required>
  260. <rtexprvalue>true</rtexprvalue>
  261. </attribute>
  262. <attribute>
  263. <name>pages</name>
  264. <required>true</required>
  265. <rtexprvalue>true</rtexprvalue>
  266. </attribute>
  267. </tag>
  268. </taglib>

Spring3+ibatis (SQL Server)+pager-taglib.tld查询分页的实现的更多相关文章

  1. 第1/24周 SQL Server 如何执行一个查询

    大家好,欢迎来到第1周的SQL Server性能调优培训.在我们进入SQL Server性能调优里枯燥难懂的细节内容之前,我想通过讲解SQL Server如何执行一个查询来建立基础.这个部分非常重要, ...

  2. 在SQL Server 2016里使用查询存储进行性能调优

    作为一个DBA,排除SQL Server问题是我们的职责之一,每个月都有很多人给我们带来各种不能解释却要解决的性能问题. 我就多次听到,以前的SQL Server的性能问题都还好且在正常范围内,但现在 ...

  3. Sql Server来龙去脉系列之三 查询过程跟踪

    我们在读写数据库文件时,当文件被读.写或者出现错误时,这些过程活动都会触发一些运行时事件.从一个用户角度来看,有些时候会关注这些事件,特别是我们调试.审核.服务维护.例如,当数据库错误出现.列数据被更 ...

  4. SQL Server 锁表、查询被锁表、解锁相关语句

    SQL Server 锁表.查询被锁表.解锁相关语句,供参考. --锁表(其它事务不能读.更新.删除) BEGIN TRAN SELECT * FROM <表名> WITH(TABLOCK ...

  5. SQL Server,Access数据库查询易混点和C#中parameter指定参数长度的优缺点

    在学校的时候就经常做一些网站,所以这次在公司实习,组长第一次给了一个企业的网站还是很快的完成了.中间并没有遇到什么大的问题,但是还是遇到了两个新手非常容易混淆的小问题,所以拿出来跟大家分享一下. 主要 ...

  6. 第1周 SQL Server 如何执行一个查询

    原文:第1周 SQL Server 如何执行一个查询 大家好,欢迎来到第1周的SQL Server性能调优培训.在我们进入SQL Server性能调优里枯燥难懂的细节内容之前,我想通过讲解SQL Se ...

  7. 在SQL Server中用好模糊查询指令LIKE

    简介:like在sql中的使用 在SQL Server中用好模糊查询指令LIKE 查询是SQL Server中重要的功能,而在查询中将Like用上,可以搜索到一些意想不到的结果和效果,like的神奇之 ...

  8. 在SQL Server中用好模糊查询指令LIKE (转载)

    like在sql中的使用:在SQL Server中用好模糊查询指令LIKE:查询是SQL Server中重要的功能,而在查询中将Like用上,可以搜索到一些意想不到的结果和效果,like的神奇 一.一 ...

  9. sql server Service Broker 相关查询

    sql server Service Broker 相关查询 -- 查看传输队列中的消息 --如果尝试从队列中移除时,列将表明哪里出现了问题 select * from sys.transmissio ...

随机推荐

  1. 第二章:C++简单程序设计

    主要内容: 1.C++语言概述 2.基本数据类型和表达式 3.数据的输入与输出 4.算法的基本控制结构 5.自定义数据类型 1.数据类型default is double 2.自定义数据类型就是bui ...

  2. Python旅途——文件操作

    Python--文件操作 1.理解文件操作 可能有的时候有人会在想为什么要对文件进行操作,无论对于文件还是网络之间的交互,我们都是建立在数据之上的,如果我们没有数据,那么很多的事情也就不能够成立,比如 ...

  3. day22 01 初识面向对象----简单的人狗大战小游戏

    day22 01 初识面向对象----简单的人狗大战小游戏 假设有一个简单的小游戏:人狗大战   怎样用代码去实现呢? 首先得有任何狗这两个角色,并且每个角色都有他们自己的一些属性,比如任务名字nam ...

  4. POJ 2267 From Dusk till Dawn or: Vladimir the Vampire(最短路变形)

    题意: 有一个吸血鬼要旅游, 他只能在晚上6点到第二天凌晨6点行动(18:00 ~ 6:00), 然后每天中午12点要喝1L的血(12:00), 现有m条火车的发车时间和行程时间, 问他从a到达b需要 ...

  5. gitlab+jenkins+docker自动构建

    docker容器部署gitlab: sudo docker run --detach \ --hostname git.gitlab.com \ --net=host \ --publish 9443 ...

  6. Mysql学习总结(44)——Linux下如何实现mysql数据库每天自动备份定时备份

    概述   备份是容灾的基础,是指为防止系统出现操作失误或系统故障导致数据丢失,而将全部或部分数据集合从应用主机的硬盘或阵列复制到其它的存储介质的过程.而对于一些网站.系统来说,数据库就是一切,所以做好 ...

  7. Tomcat 7.0.3x 启动慢并且遇到StackOverflowError的异常的解决办法

    http://qiuboboy.iteye.com/blog/1853216 使用tomcat 7.0.3x版本的同学可以发现tomcat启动慢了不少,而且还可能遇到如下启动时异常: Unable t ...

  8. Ext.js双击事件

    /** * 联系人列表panel */ Ext.define('Op.OpBill.OpBillCustLinkGridPanel', { extend: 'Ext.grid.Panel', id: ...

  9. 大数据学习——linux系统的网卡配置步骤

    ifconfig 查看ip,没有ip时需要配置 配置步骤: 1输入命令setup,选择network configuration,选择runtool,选择device configuration,选择 ...

  10. idea没有tomcatserver问题解决

    https://www.cnblogs.com/a8457013/p/7795987.html 在配置tomcate时有时候按照网上说的找不到tomcat Server,不知不觉花了很长时间这时我们在 ...