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. perl学习之:use & require

    相同: 都可以用来引用module(.PM). 不同: 1) 区别在于USE是在当前默认的@INC里面去寻找,一旦模块不在@INC中的话,用USE是不可以引入的,但是require可以指定路径: 2) ...

  2. Python中比元组更好用的namedtuple

    一.思考 1.什么是元组? 不可变的序列类型 "不能修改的列表" 2.元组支持哪些操作? 元组是序列类型,支持序列类型的所有操作 通过索引取值 one_tuple = (" ...

  3. python-----定制群发微信消息

    如何使用表格中的信息群发微信消息? 如何读取csv? →   使用内置模块csv 如何按对应信息发送到微信?→  使用第三方库wxpy 以下代码素材自取:链接:https://pan.baidu.co ...

  4. Java 多线程执行

    背景: 如果一个任务由多个子任务组成,子任务全部执行完成后然后由主线程对所有子任务结果进行封装,可以采用如下几种方式: 1.基于Guava ListenableFuture 进行: 2.基于Futur ...

  5. LeetCode(75) Sort Colors

    题目 Given an array with n objects colored red, white or blue, sort them so that objects of the same c ...

  6. OpenSSH高级功能之端口转发(Port Forwarding)

    在RedHat提供的系统管理员指南中提到OpenSSH不止是一个安全shell,它还具有X11转发(X11 Forwarding)和端口转发(Port Forwarding)的功能.X11功能一般用于 ...

  7. python015 Python3 函数

    Python3 函数函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段.函数能提高应用的模块性,和代码的重复利用率.你已经知道Python提供了许多内建函数,比如print().但你也可 ...

  8. HDU1423 最长公共上升子序列LCIS

    Problem Description This is a problem from ZOJ 2432.To make it easyer,you just need output the lengt ...

  9. 【数学】codeforces B. The Golden Age

    http://codeforces.com/contest/813/problem/B [题意] 满足n=x^a+y^b的数字为不幸运数字,a,b都是非负整数: 求闭区间[l,r]上的最长的连续幸运数 ...

  10. hdu2157:How many ways??

    n<=20个点m<=100条边有向图不带权,t个询问问Ai到Bi的经过k<=20条边方案数多少. f[i][j]--i到j的方案数,,初始化成初邻接矩阵,这样做一次就得到2条路最短路 ...