• 项目中分页相关的一些内容


    直接把代码贴出来以后方便看。

    page = new Page<MissionlistVo>((pageNum-1)*pageSize,pageSize,list);

    调用 传入参数:pageNum  pageSize  list

    /**
     * 分页对象. 包含当前页数据及分页信息如总记录数.
     *
     */
    public class Page<T> implements Serializable {
    
        /**
         * 
         */
        private static final long serialVersionUID = 7066551090434228986L;
    
        private static int DEFAULT_PAGE_SIZE = 10;
    
        private int pageSize = DEFAULT_PAGE_SIZE; // 每页的记录数
    
        private long start = 0L; // 当前页第一条数据在List中的位置,从0开始
    
        private List<T> result; // 当前页中存放的记录,类型一般为List
    
        private long totalCount; // 总记录数
        
        private String innerHtml; //分页
    
        /**
         * 构造方法,只构造空页.
         */
        public Page() {
            this(0, 0, DEFAULT_PAGE_SIZE, new ArrayList<T>());
        }
    
        /**
         * 默认构造方法.
         *
         * @param start     本页数据在数据库中的起始位置
         * @param totalSize 数据库中总记录条数
         * @param pageSize  本页容量
         * @param result      本页包含的数据
         */
        public Page(long start, long totalSize, int pageSize, List<T> result) {
            this.pageSize = pageSize;
            this.start = start;
            this.totalCount = totalSize;
            this.result = result;
            this.toHtmlString();
        }
        
        /**
         * 构造方法
         * @param start 本页数据在数据库中的起始位置
         * @param pageSize 本页容量
         * @param total 所有数据
         */
        public Page(long start, int pageSize, List<T> total) {
            this.pageSize = pageSize;
            this.start = start;
            this.totalCount = total.size();
            this.result = new ArrayList<T>();
            for(int i=(int)start; i<total.size() && i<start+pageSize; i++) {
                this.result.add(total.get(i));
            }
            this.toHtmlString();
        }
    
        /**
         * 取总记录数.
         */
        public long getTotalCount() {
            return this.totalCount;
        }
    
        /**
         * 取总页数.
         */
        public long getTotalPageCount() {
            if(pageSize == 0)
                return 0;
            if (totalCount % pageSize == 0)
                return totalCount / pageSize;
            else
                return totalCount / pageSize + 1;
        }
    
        /**
         * 取每页数据容量.
         */
        public int getPageSize() {
            return pageSize;
        }
    
        /**
         * 取当前页中的记录.
         */
        public List<T> getResult() {
            return result;
        }
        
        /**
         * 设置记录.
         */
        public void setResult(List<T> result) {
            this.result = result;
        }
    
        /**
         * 取该页当前页码,页码从1开始.
         */
        public long getCurrentPageNo() {
            if(pageSize == 0)
                return 0;
            return start / pageSize + 1;
        }
    
        /**
         * 该页是否有下一页.
         */
        public boolean hasNextPage() {
            return this.getCurrentPageNo() < this.getTotalPageCount() ;
        }
    
        /**
         * 该页是否有上一页.
         */
        public boolean hasPreviousPage() {
            return this.getCurrentPageNo() > 1;
        }
    
        /**
         * 获取任一页第一条数据在数据集的位置.
         *
         * @see #getStartOfPage(int,int)
         */
        public long getStartOfPage(int pageNo) {
            return getStartOfPage(pageNo, this.pageSize);
        }
    
        /**
         * 获取任一页第一条数据在数据集的位置.
         *
         * @param pageNo   从1开始的页号
         * @param pageSize 每页记录条数
         * @return 该页第一条数据
         */
        public static long getStartOfPage(int pageNo, int pageSize) {
            return (pageNo - 1) * pageSize;
        }
        
        
        
        public void toHtmlString(){
            if (this.getTotalPageCount() < 2) {
                this.innerHtml = "";
            }else{
                StringBuffer htmlStr = new StringBuffer(1024);
                htmlStr.append("&nbsp;共").append(this.getTotalCount());
                htmlStr.append("条记录,每页").append(this.pageSize);
                htmlStr.append("条,共").append(this.getTotalPageCount());
                htmlStr.append("页,当前第").append(getCurrentPageNo()).append("页&nbsp;");
                
                htmlStr.append("<a ");
                if(this.getCurrentPageNo() > 1){
                    htmlStr.append("herf='#' onclick='javascript:getPage(1);'");
                }
                htmlStr.append(">首页</a>&nbsp;");
                
                htmlStr.append("<a ");
                if(this.hasPreviousPage()){
                    htmlStr.append("herf='#' onclick='javascript:getPage(").append(this.getCurrentPageNo()-1).append(");'");
                }
                htmlStr.append(">上一页</a>&nbsp;");
                
                htmlStr.append("<a ");
                if(this.hasNextPage()){
                    htmlStr.append("herf='#' onclick='javascript:getPage(").append(this.getCurrentPageNo()+1).append(");'");
                }
                htmlStr.append(">下一页</a>&nbsp;");
                
                htmlStr.append("<a ");
                if(this.getCurrentPageNo() < this.getTotalPageCount()){
                    htmlStr.append("herf='#' onclick='javascript:getPage(").append(this.getTotalPageCount()).append(");'");
                }
                htmlStr.append(">尾页</a>&nbsp;");
                
                
                this.innerHtml = htmlStr.toString();
                htmlStr = null;
            }
            
        }
    
        public String getInnerHtml() {
            return innerHtml;
        }
    
        public void setInnerHtml(String innerHtml) {
            this.innerHtml = innerHtml;
        }
    最重要的是只需要new  一个page  这样把list传过去。  把pagesize  ,pagenum传过去然后就可以直接得到分页结果了     
    page = new Page<MissionlistVo>((pageNum-1)*pageSize,pageSize,list);
    page.innerHTML
    &nbsp;共64条记录,每页10条,共7页,当前第1页&nbsp;<a >首页</a>&nbsp;<a >上一页</a>&nbsp;<a herf='#' onclick='javascript:getPage(2);'>下一页</a>&nbsp;<a herf='#' onclick='javascript:getPage(7);'>尾页</a>&nbsp;
  • 相关阅读:
    四、创建多线程、数据共享
    operator函数操作符
    三、线程传参
    二、线程创建、结束
    一、并发、进程、线程概念
    bagging和boosting的区别
    ID3,C4.5和CART三种决策树的区别
    7创建型模式之建造者模式
    6创建型模式之工厂模式与抽象工厂模式
    5创建型模式之简单工厂模式
  • 原文地址:https://www.cnblogs.com/wupeng88/p/4503573.html
Copyright © 2020-2023  润新知