Spring3+ibatis (SQL Server)+pager-taglib.tld查询分页的实现
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中:
- 标签库:
- <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
- <%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
- <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
- <%@taglib uri="http://jsptags.com/tags/navigation/pager" prefix="pg" %>
- 实现分页用的几个变量:
- <%
- int currentPage = Integer.parseInt((String)request.getAttribute("page"));
- int pageSize=25;
- int resultCount = Integer.parseInt((String)request.getAttribute("resultCount"));
- int pageCount=((resultCount - 1)/pageSize) + 1;
- currentPage=Math.min(currentPage, pageCount);
- int offset=(currentPage -1) * pageSize;
- int totalpage = (resultCount % pageSize == 0) ? resultCount / pageSize
- : (resultCount / pageSize) + 1;
- %>
- 分页标记開始(为了显示清晰。放在div里面):
- <div>
- <!-- 分页标记開始 -->
- <ul style="float:right">
- <pg:pager
- items="<%= resultCount %>"
- offset="<%= offset %>"
- index="center"
- maxPageItems="<%=pageSize%>"
- maxIndexPages="10"
- isOffset="false"
- export="currentPageNumber=pageNumber"
- scope="request">
- <pg:index export="totalItems=itemCount">
- <% if(((Integer)currentPageNumber).intValue() != 1) { %>
- <pg:first>
- <li><a href="/PageProject/directcity/alllist/tj/<%= pageNumber %>.html">首页</a></li>
- </pg:first>
- <%}%>
- <pg:prev>
- <li><a href="/PageProject/directcity/alllist/tj/<%= pageNumber %>.html">上一页</a></li>
- </pg:prev>
- <pg:pages>
- <% if(pageNumber == currentPageNumber) { %>
- <li class="ifpon"><span><%= pageNumber %></span></li>
- <% } else { %>
- <li><a href="/PageProject/directcity/alllist/tj/<%= pageNumber %>.html"><%= pageNumber %></a></li>
- <% } %>
- </pg:pages>
- <pg:next>
- <li><a href="/PageProject/directcity/alllist/tj/<%= pageNumber %>.html">下一页</a></li>
- </pg:next>
- <% if(((Integer)currentPageNumber).intValue() != totalpage) { %>
- <pg:last>
- <li><a href="/PageProject/directcity/alllist/tj/<%= pageNumber %>.html">尾页</a></li>
- </pg:last>
- <%}%>
- <pg:page export="firstItem, lastItem"></pg:page>
- </pg:index>
- </pg:pager>
- </ul>
- <!-- 分页标记结束 -->
- </div>
SQL语句:
- 例1 :select * from (
- select top pageSize * from (
- select top offset + pageSize *
- from ( select * from 表1 union all select * from 表2 union all select * from 表3) ) result
- where 条件
- order by 排序字段 desc )a order by 排序字段 asc )b order by 排序字段 desc
- 例2: select top pageSize * from 表 where 主键 not in(select top (currentPage-1)*pageSize news_id from 表)
最后插张调试结果的图片:
pager-taglib.tld文件内容:
- <?
xml version="1.0" encoding="ISO-8859-1" ?
>
- <!DOCTYPE taglib
- PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN"
- "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">
- <taglib>
- <tlibversion>1.0</tlibversion>
- <jspversion>1.1</jspversion>
- <shortname>pg</shortname>
- <uri>http://jsptags.com/tags/navigation/pager</uri>
- <info>
- The Pager Tag Library is the easy and flexible way to implement paging of
- large data sets in JavaServer Pages (JSP). It can emulate all currently
- known paging styles with minimal effort. It also includes re-usable index
- styles that emulate the search result navigators of popular web sites
- such as Google[sm], AltaVista® and Yahoo!. The Pager Tag Library does most
- of the work for you by dynamically organizing your data set into pages and
- generating a browsable index with virtually any look desired.
- </info>
- <tag>
- <name>pager</name>
- <tagclass>com.jsptags.navigation.pager.PagerTag</tagclass>
- <teiclass>com.jsptags.navigation.pager.PagerTagExtraInfo</teiclass>
- <bodycontent>JSP</bodycontent>
- <attribute>
- <name>id</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- </attribute>
- <attribute>
- <name>url</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- </attribute>
- <attribute>
- <name>items</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- </attribute>
- <attribute>
- <name>offset</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- </attribute>
- <attribute>
- <name>maxItems</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- </attribute>
- <attribute>
- <name>maxPageItems</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- </attribute>
- <attribute>
- <name>maxIndexPages</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- </attribute>
- <attribute>
- <name>isOffset</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- </attribute>
- <attribute>
- <name>index</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- </attribute>
- <attribute>
- <name>export</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- </attribute>
- <attribute>
- <name>scope</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- </attribute>
- </tag>
- <tag>
- <name>param</name>
- <tagclass>com.jsptags.navigation.pager.ParamTag</tagclass>
- <bodycontent>empty</bodycontent>
- <attribute>
- <name>id</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- </attribute>
- <attribute>
- <name>name</name>
- <required>true</required>
- <rtexprvalue>true</rtexprvalue>
- </attribute>
- <attribute>
- <name>value</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- </attribute>
- </tag>
- <tag>
- <name>item</name>
- <tagclass>com.jsptags.navigation.pager.ItemTag</tagclass>
- <bodycontent>JSP</bodycontent>
- <attribute>
- <name>id</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- </attribute>
- </tag>
- <tag>
- <name>index</name>
- <tagclass>com.jsptags.navigation.pager.IndexTag</tagclass>
- <teiclass>com.jsptags.navigation.pager.IndexTagExtraInfo</teiclass>
- <bodycontent>JSP</bodycontent>
- <attribute>
- <name>id</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- </attribute>
- <attribute>
- <name>export</name>
- <required>false</required>
- <rtexprvalue>false</rtexprvalue>
- </attribute>
- </tag>
- <tag>
- <name>first</name>
- <tagclass>com.jsptags.navigation.pager.FirstTag</tagclass>
- <teiclass>com.jsptags.navigation.pager.JumpTagExtraInfo</teiclass>
- <bodycontent>JSP</bodycontent>
- <attribute>
- <name>id</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- </attribute>
- <attribute>
- <name>export</name>
- <required>false</required>
- <rtexprvalue>false</rtexprvalue>
- </attribute>
- <attribute>
- <name>unless</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- </attribute>
- </tag>
- <tag>
- <name>prev</name>
- <tagclass>com.jsptags.navigation.pager.PrevTag</tagclass>
- <teiclass>com.jsptags.navigation.pager.PageTagExtraInfo</teiclass>
- <bodycontent>JSP</bodycontent>
- <attribute>
- <name>id</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- </attribute>
- <attribute>
- <name>export</name>
- <required>false</required>
- <rtexprvalue>false</rtexprvalue>
- </attribute>
- <attribute>
- <name>ifnull</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- </attribute>
- </tag>
- <tag>
- <name>page</name>
- <tagclass>com.jsptags.navigation.pager.PageTag</tagclass>
- <teiclass>com.jsptags.navigation.pager.JumpTagExtraInfo</teiclass>
- <bodycontent>JSP</bodycontent>
- <attribute>
- <name>id</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- </attribute>
- <attribute>
- <name>export</name>
- <required>false</required>
- <rtexprvalue>false</rtexprvalue>
- </attribute>
- </tag>
- <tag>
- <name>pages</name>
- <tagclass>com.jsptags.navigation.pager.PagesTag</tagclass>
- <teiclass>com.jsptags.navigation.pager.PageTagExtraInfo</teiclass>
- <bodycontent>JSP</bodycontent>
- <attribute>
- <name>id</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- </attribute>
- <attribute>
- <name>export</name>
- <required>false</required>
- <rtexprvalue>false</rtexprvalue>
- </attribute>
- </tag>
- <tag>
- <name>next</name>
- <tagclass>com.jsptags.navigation.pager.NextTag</tagclass>
- <teiclass>com.jsptags.navigation.pager.PageTagExtraInfo</teiclass>
- <bodycontent>JSP</bodycontent>
- <attribute>
- <name>id</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- </attribute>
- <attribute>
- <name>export</name>
- <required>false</required>
- <rtexprvalue>false</rtexprvalue>
- </attribute>
- <attribute>
- <name>ifnull</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- </attribute>
- </tag>
- <tag>
- <name>last</name>
- <tagclass>com.jsptags.navigation.pager.LastTag</tagclass>
- <teiclass>com.jsptags.navigation.pager.JumpTagExtraInfo</teiclass>
- <bodycontent>JSP</bodycontent>
- <attribute>
- <name>id</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- </attribute>
- <attribute>
- <name>export</name>
- <required>false</required>
- <rtexprvalue>false</rtexprvalue>
- </attribute>
- <attribute>
- <name>unless</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- </attribute>
- </tag>
- <tag>
- <name>skip</name>
- <tagclass>com.jsptags.navigation.pager.SkipTag</tagclass>
- <teiclass>com.jsptags.navigation.pager.PageTagExtraInfo</teiclass>
- <bodycontent>JSP</bodycontent>
- <attribute>
- <name>id</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- </attribute>
- <attribute>
- <name>export</name>
- <required>false</required>
- <rtexprvalue>false</rtexprvalue>
- </attribute>
- <attribute>
- <name>ifnull</name>
- <required>false</required>
- <rtexprvalue>true</rtexprvalue>
- </attribute>
- <attribute>
- <name>pages</name>
- <required>true</required>
- <rtexprvalue>true</rtexprvalue>
- </attribute>
- </tag>
- </taglib>
Spring3+ibatis (SQL Server)+pager-taglib.tld查询分页的实现的更多相关文章
- 第1/24周 SQL Server 如何执行一个查询
大家好,欢迎来到第1周的SQL Server性能调优培训.在我们进入SQL Server性能调优里枯燥难懂的细节内容之前,我想通过讲解SQL Server如何执行一个查询来建立基础.这个部分非常重要, ...
- 在SQL Server 2016里使用查询存储进行性能调优
作为一个DBA,排除SQL Server问题是我们的职责之一,每个月都有很多人给我们带来各种不能解释却要解决的性能问题. 我就多次听到,以前的SQL Server的性能问题都还好且在正常范围内,但现在 ...
- Sql Server来龙去脉系列之三 查询过程跟踪
我们在读写数据库文件时,当文件被读.写或者出现错误时,这些过程活动都会触发一些运行时事件.从一个用户角度来看,有些时候会关注这些事件,特别是我们调试.审核.服务维护.例如,当数据库错误出现.列数据被更 ...
- SQL Server 锁表、查询被锁表、解锁相关语句
SQL Server 锁表.查询被锁表.解锁相关语句,供参考. --锁表(其它事务不能读.更新.删除) BEGIN TRAN SELECT * FROM <表名> WITH(TABLOCK ...
- SQL Server,Access数据库查询易混点和C#中parameter指定参数长度的优缺点
在学校的时候就经常做一些网站,所以这次在公司实习,组长第一次给了一个企业的网站还是很快的完成了.中间并没有遇到什么大的问题,但是还是遇到了两个新手非常容易混淆的小问题,所以拿出来跟大家分享一下. 主要 ...
- 第1周 SQL Server 如何执行一个查询
原文:第1周 SQL Server 如何执行一个查询 大家好,欢迎来到第1周的SQL Server性能调优培训.在我们进入SQL Server性能调优里枯燥难懂的细节内容之前,我想通过讲解SQL Se ...
- 在SQL Server中用好模糊查询指令LIKE
简介:like在sql中的使用 在SQL Server中用好模糊查询指令LIKE 查询是SQL Server中重要的功能,而在查询中将Like用上,可以搜索到一些意想不到的结果和效果,like的神奇之 ...
- 在SQL Server中用好模糊查询指令LIKE (转载)
like在sql中的使用:在SQL Server中用好模糊查询指令LIKE:查询是SQL Server中重要的功能,而在查询中将Like用上,可以搜索到一些意想不到的结果和效果,like的神奇 一.一 ...
- sql server Service Broker 相关查询
sql server Service Broker 相关查询 -- 查看传输队列中的消息 --如果尝试从队列中移除时,列将表明哪里出现了问题 select * from sys.transmissio ...
随机推荐
- Python旅途——简单语法
1. 前言 在我们对环境以及pycharm安装好之后,我们就可以开始我们的Python之旅了,那么,我们学习一门语言应该如何开始呢?就像我们学习汉语一样,从abcd这些拼音学起,而对于我们Python ...
- MySQL学习点滴 --分区表
写在前面:笔者之前也有一些MySQL方面的笔记,其中部分内容来自极客时间中丁奇老师的课程.后经园友提醒,这个做法确实不太好.之后我仍会继续更新一下MySQL方面的学习记录,在自己理解之后用自己的方式记 ...
- Poj 2337 Catenyms(有向图DFS求欧拉通路)
题意: 给定n个单词, 问是否存在一条欧拉通路(如acm,matal,lack), 如果存在, 输出字典序最小的一条. 分析: 这题可以看作http://www.cnblogs.com/Jadon97 ...
- luogu1856 [USACO5.5]矩形周长Picture
看到一坨矩形就要想到扫描线.(poj atantis) 我们把横边竖边分开计算,因为横边竖边其实没有区别,以下论述全为考虑竖边的. 怎样统计一个竖边对答案的贡献呢?答:把这个竖边加入线段树,当前的总覆 ...
- BeautifulSoup4系列一
前言 以博客园为例,爬取我的博客上首页的发布时间.标题.摘要,本篇先小试牛刀,先了解下它的强大之处,后面讲beautifulsoup4的详细功能. 一.安装 1.打开cmd用pip在线安装beauti ...
- [luoguP1437] [HNOI2004]敲砖块(DP)
传送门 可以得到一个性质,如果打掉第i列的第j个,那么第i列的1~j-1个也会打掉. 如果第i列打j个,那么第i+1列至少打j-1个. #include <cstdio> #include ...
- 实体类与实体DTO类之间的转换
实体类与实体DTO类之间的转换 实体类与实体DTO类之间的转换 1.通过使用第三方序列化反序列化工具Newtonsoft.Json 2.通过反射实现 3.通过表达式目录树加字典缓存实现 4. 通过表达 ...
- 6572平台上关于wifi热点切换跳的坑
最近在做一个无屏的项目,需要开启设备的wifi热点,通过连接热点设置设备wifi,本来看起来很容易完成的一件事情,遇到了一下的坑 在wifi切换状态时,大概率出现不能切换的问题,比如从wifi状态切换 ...
- 【2018 Multi-University Training Contest 1】
01:https://www.cnblogs.com/myx12345/p/9362221.html 02:https://www.cnblogs.com/myx12345/p/9382267.htm ...
- linux命令1——基础
Rm 删除命令 Rm [选项][文件] 删除一个文件或者目录 选项:r 递归的删除文件夹及其子文件,f 忽略不存在的文件(不提示) (2)rm删除目录下所有文件,但不删除目录 >>rm - ...