zoukankan      html  css  js  c++  java
  • 分页标签: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

      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>  
      
       
  • 相关阅读:
    Http和Socket连接区别
    解决TCP网络传输“粘包”问题
    c# 获取MAC IP TCP列表
    《你不常用的c#之四》:Array的小抽屉ArraySegment
    《你不常用的c#之三》:Action 之怪状
    《你不常用的c#之二》:略谈GCHandle
    c#中var关键字用法
    Combotree--别样的构建层级json字符串
    一周代码秀之[11.18~11.24 linq2xml面向对象]
    这个季节的这些时候
  • 原文地址:https://www.cnblogs.com/chizizhixin/p/5322911.html
Copyright © 2011-2022 走看看