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. 第十三章:MFC库与Windows程序开发概述

    主要内容: 1.Windows程序的基本结构 2.MFC库简介 3.使用Visual C++开发Windows程序 具体内容略

  2. PHP fpm配置和优化

    pm.max_children = 1024 #最大子进程数 maximum number of child processes when pm is set to 'dynamic' or 'ond ...

  3. STL中set求交集、并集、差集的方法

    并集(http://zh.cppreference.com/w/cpp/algorithm/set_union) 交集(http://zh.cppreference.com/w/cpp/algorit ...

  4. jquery版本的问题造成第二次全选无效

    注意:第一种方式点击全选按钮 第一次全选有用第二次全选无效.因为jquery1.7以上的版本用此方法只能第一次好用,第二次就会失效,用第二种方式解决

  5. [luoguP1772] [ZJOI2006]物流运输(DP + spfa)

    传送门 预处理cost[i][j]表示从第i天到第j天起点到终点的最短距离 f[i]表示前i天到从起点到终点的最短距离 f[0] = -K f[i] = min(f[i], f[j - 1] + co ...

  6. 两行代码快速创建一个iOS主流UI框架

    本框架适用于 使用 NavigationController+UITabBarController 的APP 框架QLSNavTab , GitHub地址:https://github.com/qia ...

  7. 16.1117 NOIP 模拟赛

    水灾(sliker.cpp/c/pas) 1000MS  64MB 大雨应经下了几天雨,却还是没有停的样子.土豪CCY刚从外地赚完1e元回来,知道不久除了自己别墅,其他的地方都将会被洪水淹没. CCY ...

  8. Java开发一些小的思想与功能小记(二)

    1.用if+return代替复杂的if...else(if+return) public static void test1(String str) { if ("1".equal ...

  9. centos 中找不到 php-config

    两种解决方式: 1.CentOS6 PHP extension install: Cannot find php-config. Please use --with-php-config=PATH 2 ...

  10. 胜利大逃亡--hdu --1253(bfs)

    Problem Description Ignatius被魔王抓走了,有一天魔王出差去了,这可是Ignatius逃亡的好机会. 魔王住在一个城堡里,城堡是一个A*B*C的立方体,可以被表示成A个B*C ...