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. Properties类操作.properties配置文件方法总结

    一.properties文件 Properties文件是java中很常用的一种配置文件,文件后缀为“.properties”,属文本文件,文件的内容格式是“键=值”的格式,可以用“#”作为注释,jav ...

  2. 分页语句where条件中的子查询有or关键字优化

    背景 开发说: 有段SQL语句,去掉order by很快,有order by之后,查询1小时都无法返回结果. 我叫他把SQL扔给我看下. SQL代码及执行计划 select * from (selec ...

  3. Python之阻塞IO模型与非阻塞IO模型

    Python之阻塞IO模型与非阻塞IO模型 IO模型 1 阻塞IO: 全程阻塞 2 非阻塞IO: 发送多次系统调用: 优点:wait for data时无阻塞 缺点:1 系统调用太多 2 数据不是实时 ...

  4. mysql多字段组合删除重复行

    DELETEFROM boll_paramWHERE id in ( SELECT a.id FROM ( SELECT id FROM boll_param WHERE (symbol, time_ ...

  5. 【Python基础】迭代器、生成器

    迭代器和生成器 迭代器 一 .迭代的概念 #迭代器即迭代的工具,那什么是迭代呢? #迭代是一个重复的过程,每次重复即一次迭代,并且每次迭代的结果都是下一次迭代的初始值 while True: #只是单 ...

  6. Android开发——短信电话拦截/接听电话

    1.短信拦截 首先需要声明的是,Android4.4版本以上,如果想做到短信拦截,必须成为default sms,把所有短信相关的功能都包揽了,然后再做短信拦截.但这种做法,适配性和兼容性的工作是非常 ...

  7. 火狐插件youdao word capturer无法删除。

    []火狐插件youdao word capturer无法删除.       魔芋记录一下:   []一直无法删除,就网上找了下.   网上解释说是:有道词典自己安装的插件,所以火狐无法管理. 用来帮助 ...

  8. HDU 5468 Puzzled Elena

    Puzzled Elena Time Limit: 2500ms Memory Limit: 131072KB This problem will be judged on HDU. Original ...

  9. [Istio]流量管理API v1alpha3路由规则

    Istio提供一个API进行流量管理,该API允许用户将请求路由到特定版本的服务,为弹性测试注入延迟和失败,添加断路器等,所有这些功能都不必更改应用程序本身的代码.Istio 1.0中引入新的流量管理 ...

  10. Kubernetes集群中修复状态为NotReady的节点

    度个假回来发现自己集群中的节点都挂了,全部是NotReady状态 但是除了.10节点外,其他主机并没有挂,可以远程连接上, 那就考虑是kubernetes系统的问题 解决的方法是重启kube-prox ...