分页标签:pager-taglib的使用

分页标签:pager-taglib的使用

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

    [java] view plain copy
    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层:

     

      @Override
        public PagerBean<Book> findbyPager(int offerst) {
    
            PagerBean<Book>  pb = new PagerBean<Book>();
            int sumRow=this.getSumRow();
            pb.setTotalRecord(sumRow);
            String sql ="select top "+10+" * from book where bookId not in" +
                    "  (select   top "+offerst+" bookId  from book)";
            List<Book> lst = new ArrayList<Book>();
            rs = query(sql, null);
            try {
                while(rs.next()){
                    Book book = new Book(rs.getInt("bookid"), rs.getString("bookName"), rs.getInt("booktypeId"), rs.getString("author"), rs.getString("pbName"), rs.getString("context"), rs.getString("smallimg"), rs.getString("bigImg"), rs.getDouble("price"), rs.getDate("pbdate"), rs.getDouble("hyprice"), rs.getInt("bookStates"), rs.getDate("sjdate"), rs.getInt("num"), rs.getInt("saleCount"));
                    lst.add(book);
                }
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }finally{
                closeAll();
            }
            pb.setDatas(lst);
            return pb;
        
            
        }
    

     servlet :

    public void doPost(HttpServletRequest request, HttpServletResponse response)
    			throws ServletException, IOException {
    		request.setCharacterEncoding("utf-8");
    		response.setContentType("text/html;chartset=utf-8");
    		String pageOffset =request.getParameter("pager.offset") ;
    		int ps=0;
    		try {
    			ps=Integer.parseInt(pageOffset);
    		} catch (NumberFormatException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    			ps=0;
    		}
    		IBookDao bookDao = new BookDao();
    		 PagerBean<Book> pagerData =bookDao.findbyPager(ps);
    		 request.setAttribute("pagerData", pagerData);
    		 request.getRequestDispatcher("front/collect.jsp").forward(request, response);
    

     jsp :

        <pg:pager items="${ pagerData.totalRecord}" url="${pageContext.request.contextPath}/BookListServletByPageTag" maxPageItems="10" maxIndexPages="7" export="number"><!-- export可以使用表达式: curpage=number,这样 curpage就相当于number -->  
        <pg:first>  
            <a href="<%=pageUrl %>">首页[<%=pageNumber %>]</a><!-- pageNumber导出当前页的值 -->  
        </pg:first>  
        <pg:prev>  
            <a href="<%=pageUrl %>">上一页</a>     
        </pg:prev>  
        <pg:pages>  
        <%if(number==pageNumber){ %>  
            [<%=pageNumber %>]  
        <%} else { %>  
            <a href="<%=pageUrl %>">[<%=pageNumber %>]</a> <!-- pageUrl pageNumber导出值 -->  
        <%} %>  
        </pg:pages>  
        <pg:next>  
            <a href="<%=pageUrl %>">下一页</a>  
        </pg:next>  
        <pg:last>  
            <a href="<%=pageUrl%>">尾页</a>  
        </pg:last>  
    </pg:pager>  
    

     

     

     

     
posted @ 2016-03-26 14:43 赤子之心_timefast 阅读( ...) 评论( ...) 编辑 收藏
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值