zoukankan      html  css  js  c++  java
  • java普通分页(低级分页)

    分页我们要弄清楚分页所需要的内容

    分页的初步分析

    我们需要要有五个参数才能完成分页:

    pageNo 当前页码(当前你在第几页)
    pageTotal 总页码数(如果你要分为30页就是30)
    pageTotalCount 总条目数(总共查询出多少条数据)
    pageSize 每页显示的数目(每一页你要展示几条数据)
    items  当前页码显示的数据集合(如果是为学生分页那么获取的就是List<student>,)

    只要这几个参数齐全就可以开展了

    首先我们建立一个

    对应的JavaBean Page

    package Pro;
    
    import java.util.List;
    
    public  class Page<T> {
        public static final Integer PAGE_SIZE = 4;
    
        //当前页码
        private Integer pageNo;
        //总页码
        private Integer pageTotal;
        //当前野显示的数量
        private Integer pageSize = PAGE_SIZE;
        //查询的总记录数
        private Integer pageToalCount;
        //当前页数据
        private List<T> items;
    
        public Page() {
        }
    
        public static Integer getPageSize() {
            return PAGE_SIZE;
        }
    
        public void setPageSize(Integer pageSize) {
            this.pageSize = pageSize;
        }
    
        public Integer getPageToalCount() {
            return pageToalCount;
        }
    
        public void setPageToalCount(Integer pageToalCount) {
            this.pageToalCount = pageToalCount;
        }
    
        public List<T> getItems() {
            return items;
        }
    
        public void setItems(List<T> items) {
            this.items = items;
        }
    
        public Integer getPageNo() {
            return pageNo;
        }
    
    
    
        public Integer getPageTotal() {
            return pageTotal;
        }
    
        public void setPageTotal(Integer pageTotal) {
            this.pageTotal = pageTotal;
        }
    
        /**
         * 设置第一页和最后页的限制,第一页再点击上一页也是第一页 最后一页 再点击下一页也是最后页
         * @param pageNo
         */
        public void setPageNo(Integer pageNo) {
            if(pageNo < 1){
                pageNo = 1;
            }
            if(pageNo > pageTotal){
                pageNo = pageTotal;
            }
        }
    
        @Override
        public String toString() {
            return "Page{" +
                    "pageNo=" + pageNo +
                    ", pageTotal=" + pageTotal +
                    ", pageSize=" + pageSize +
                    ", pageToalCount=" + pageToalCount +
                    ", items=" + items +
                    '}';
        }
    }
    Page

    比如我们要对Book进行分页展示

    那么就对最初的BookDao中添加方法

    /**
         * 查询所有记录条目数
         * @return
         */
        public Integer queryForPageTotalCount();
    
        /**
         * 查询界面展示的信息集合
         * @param begin 开始位置
         * @param pageSize 每页显示的记录数
         * @return
         */
        public List<Book> queryForPageItems(int begin,int pageSize);

    BookDaoImpl中实现这两个方法

     @Override
        public Integer queryForPageTotalCount() {
            String sql = "select count(*) from t_book";
            Number count = (Number) queryForStingValue(sql);
            return count.intValue();
        }
    
        @Override
        public List<Book> queryForPageItems(int begin, int pageSize) {
            String sql = "select `id`,`name`,`price`,`author`,`sales`,`stock`,`img_path` from t_book limit ?,?";
            return queryForList(Book.class,sql,begin,pageSize);
        }

    然后再BookService中建立Page的实现

    @Override
        public Page<Book> pages(int pageNo, int pageSize) {
            Page<Book> page = new Page<Book>();
            //设置当前页码
            page.setPageNo(pageNo);
            //设置每页显示的数据条目
            page.setPageSize(pageSize);
            //获取总条目数
            Integer pageTotalCount = bookDao.queryForPageTotalCount();
            //设置总条目数
            page.setPageToalCount(pageTotalCount);
            //获取总页码 总页码等于总条目数 / 每页显示的条目 pageTotalCount/pageSize
            Integer pageTotal = pageTotalCount / pageSize;
            if(pageTotalCount * pageSize > 1){
                pageTotal += 1;
            }
            page.setPageTotal(pageTotal);
    
            // 开始的条目数
            Integer begin = (page.getPageNo() -1) * pageSize;
            List<Book> items = bookDao.queryForPageItems(begin,pageSize);
            page.setItems(items);
            return page;
        }

    然后是BookServlet

     protected void page(HttpServletRequest req,HttpServletResponse resp) throws ServletException, IOException {
            int pageNo = WebUtil.parseInt(req.getParameter("pageNo"),1);
            int pageSize = WebUtil.parseInt(req.getParameter("pageSize"), Page.PAGE_SIZE);
            Page<Book> page = bookService.pages(pageNo,pageSize);
            req.setAttribute("page",page);
            req.getRequestDispatcher("/pages/manager/book_manager.jsp").forward(req,resp);
    
        }

    manager_menu.jsp 中【图书管理】请求地址的修改:

    .

  • 相关阅读:
    ZOJ 2588 Burning Bridges
    POJ 1966 ZOJ 2182 Cable TV Network
    HDU 5348 MZL's endless loop
    HDU 5352 MZL's City
    Tarjan算法求解无向连通图的割点、割边、点双连通分量和边双连通分量的模板
    ZOJ 1119 SPF
    HDU 3452 Bonsai
    HDU 1520 Anniversary party
    POJ 2239 Selecting Courses
    POJ 1144 Network
  • 原文地址:https://www.cnblogs.com/zhaoyunlong/p/13865065.html
Copyright © 2011-2022 走看看