首页 > 其他 > 详细

分页标签:pager-taglib的使用

时间:2016-03-26 15:39:55      阅读:209      评论:0      收藏:0      [点我收藏+]

pager-taglib是一个用jsp标签库实现分页的工具,在它的demo中有实现好的各种常见分页方式,使用时只需pager- taglib.jar包即可,Pager会在给出的URL后面加上"?page.offset="来标识当前偏移量,使用时在jsp页面将pager- taglib的标签库引入:   

<%@ taglib prefix="pg" uri="http://jsptags.com/tags/navigation/pager" %>

 

标签介绍
<pg:pager>:一切子标签都在它里面工作

<pg:pager  items="int" maxItems="int" maxPageItems="int" maxIndexPages="int"  export="expression" scope="page|request" 省略>

items:总记录数
maxPageItems:每页显示的行数,默认为10
maxIndexPages:最大输出的页码数
export:这个属性是让标签给你暴露什么变量,当然这些变量是有选择的,如在Pager标签里,可以暴露出来的变量有pageOffset及 pageNumber(参见文档),即页码偏移量及页码。通过这两个变量名,可以在Jsp或Java里面从Request里获得。 Export属性接受的值还有表达式,如currentPage=pageNumber表示,把pageNumber的值暴露出来,并赋给一个叫 CurrentPage的变量,这个变量将被保存到Request中,在Jsp或Java中可以得到。scope:有Reuqest、page可选。
<pg:param>设置加入到URL的参数如  <pg:param name=" pagesize " value="5" /> 

pg:first 首页标签
可以导出的值: pageUrl - 分页链接URL地址    pageNumber - 页码   firstItem - 首页第一行的索引值   lastItem - 首页最后一行的索引值 
pg:pre上一页 
pg:next下一页
pg:last 尾页
pg:pages 循环输出页码

下面是一个示例:

    1. <%@ page language="java" pageEncoding="UTF-8"%>  
    2. <%@taglib prefix="pg" uri="http://jsptags.com/tags/navigation/pager"%>  
    3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
    4. <html>  
    5. <head>  
    6. <title>title</title>  
    7. </head>  
    8. <body>  
    9. <!-- 每个标签可以导出的值参见文档 ,没有的可以用export导出 ,但用export的值也有规定-->   
    10. <pg:pager items="1000" maxPageItems="10" maxIndexPages="7" export="number"><!-- export可以使用表达式: curpage=number,这样 curpage就相当于number -->  
    11. <%=number %>  
    12.     <pg:first>  
    13.         <href="<%=pageUrl %>">首页[<%=pageNumber %>]</a><!-- pageNumber导出当前页的值 -->  
    14.     </pg:first>  
    15.     <pg:prev>  
    16.         <href="<%=pageUrl %>">上一页</a>     
    17.     </pg:prev>  
    18.     <pg:pages>  
    19.     <%if(number==pageNumber){ %>  
    20.         [<%=pageNumber %>]  
    21.     <%} else { %>  
    22.         <href="<%=pageUrl %>">[<%=pageNumber %>]</a<!-- pageUrl pageNumber导出值 -->  
    23.     <%} %>  
    24.     </pg:pages>  
    25.     <pg:next>  
    26.         <href="<%=pageUrl %>">下一页</a>  
    27.     </pg:next>  
    28.     <pg:last>  
    29.         <href="<%=pageUrl%>">尾页</a>  
    30.     </pg:last>  
    31. </pg:pager>  
    32. </body>  
    33. </html
  1. 下面是一个实际应用的例子:
  2. Pager.java

    1. public class Pager<E> {  
    2.       
    3.     private int pageSize;//每页显示多少条  
    4.     private int pageOffset;//分页的开始值  
    5.     private int totalRecord;//总共多少条记录  
    6.     private int totalPage;//总共多少页  
    7.     private List<E> datas;//放置具体数据的列表  
    8.       
    9.     //省略getter setter  
    10.       

     

    DAO层:

    1. public Pager<User> list(String condition) {  
    2.         int pageOffset = SystemContext.getPageOffset();  
    3.         int pageSize = SystemContext.getPageSize();  
    4.         Connection con = null;  
    5.         PreparedStatement ps = null;  
    6.         ResultSet rs = null;  
    7.         Pager<User> pages = new Pager<User>();  
    8.         List<User> users = new ArrayList<User>();  
    9.         User u = null;  
    10.         try {  
    11.             con = DBUtil.getConnection();  
    12.             String sql = "select * from t_user";  
    13.             String sqlCount = "select count(*) from t_user";  
    14.             if(condition!=null||!"".equals(condition)) {  
    15.                 sql+=" where username like ‘%"+condition+"%‘ or nickname like ‘%"+condition+"%‘";  
    16.                 sqlCount+=" where username like ‘%"+condition+"%‘ or nickname like ‘%"+condition+"%‘";  
    17.             }  
    18.             sql+=" limit ?,?";  
    19.             ps = con.prepareStatement(sql);  
    20.             ps.setInt(1, pageOffset);  
    21.             ps.setInt(2, pageSize);  
    22.               
    23.             rs = ps.executeQuery();  
    24.             while(rs.next()) {  
    25.                 u = new User();  
    26.                 u.setId(rs.getInt("id"));  
    27.                 u.setNickname(rs.getString("nickname"));  
    28.                 u.setUsername(rs.getString("username"));  
    29.             }  
    30.             ps = con.prepareStatement(sqlCount);  
    31.             rs = ps.executeQuery();  
    32.             int totalRecord = 0;  
    33.             while(rs.next()) {  
    34.                 totalRecord = rs.getInt(1);  
    35.             }  
    36.             int totalPage = (totalRecord-1)/pageSize+1;  
    37.             pages.setPageOffset(pageOffset);  
    38.             pages.setPageSize(pageSize);  
    39.             pages.setTotalPage(totalPage);  
    40.             pages.setTotalRecord(totalRecord);  
    41.         } catch (SQLException e) {  
    42.             e.printStackTrace();  
    43.         } finally {  
    44.             DBUtil.close(rs);  
    45.             DBUtil.close(ps);  
    46.             DBUtil.close(con);  
    47.         }  
    48.         pages.setDatas(users);  
    49.         return pages;  
    50.     } 
    51. 分页部分pager.jsp:
      1. <%@ page language="java" contentType="text/html; charset=UTF-8"  
      2.     pageEncoding="UTF-8"%>  
      3. <%@taglib prefix="pg" uri="http://jsptags.com/tags/navigation/pager" %>  
      4. <%  
      5.     int items = Integer.parseInt(request.getParameter("items"));  
      6.     String params = request.getParameter("params"); //con  
      7.     String v="";  
      8.     if(params==null) params="";  
      9.     if(request.getParameter(params)!=null)  
      10.         v=new String(request.getParameter(params).getBytes("ISO-8859-1"),"utf-8") ;  
      11. %>  
      12. <pg:pager maxPageItems="15" items="<%=items%>" export="curPage=pageNumber">  
      13.   
      14.     <pg:param name="<%=params %>" value="<%=v %>"/>  
      15.   
      16. <pg:last>  
      17. <%=items %>记录,共<%=pageNumber %>页,  
      18. </pg:last>  
      19. 当前第<%=curPage %>页  
      20. <pg:first>  
      21.     <href="<%=pageUrl%>">首页</a>  
      22. </pg:first>  
      23. <pg:prev>  
      24.     <href="<%=pageUrl%>">上一页</a>  
      25. </pg:prev>  
      26. <pg:pages>  
      27. <%  
      28.     if(curPage==pageNumber) {  
      29. %>  
      30.     [<%=pageNumber%>]  
      31. <%         
      32.     } else {  
      33. %>  
      34.     <href="<%=pageUrl %>"><%=pageNumber %></a>          
      35. <%         
      36.     }  
      37. %>  
      38. </pg:pages>  
      39. <pg:next>  
      40.     <href="<%=pageUrl %>">下一页</a>  
      41. </pg:next>  
      42. <pg:last>  
      43.     <href="<%=pageUrl%>">尾页</a>  
      44. </pg:last>  
      45. </pg:pager

分页标签:pager-taglib的使用

原文:http://www.cnblogs.com/chizizhixin/p/5322911.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!