天天看點

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中:

[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語句:

[sql]  view plain copy

  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   表)   

最後插張調試結果的圖檔:

Spring3+ibatis (SQL Server)+pager-taglib.tld查詢分頁的實作

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>  

繼續閱讀