`
huibin
  • 浏览: 750792 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

来自jeecms的分页代码,感觉不错,包含了一般的分页信息

阅读更多

来自jeecms的分页代码,感觉不错,包含了一般的分页信息,list属性对于one to many也适用:

Paginable.java

view plaincopy to clipboardprint?
package page;  
 
/** 
 * 可分页接口 
 *  
 * @author liufang 
 *  
 */ 
public interface Paginable {  
    /** 
     * 总记录数 
     *  
     * @return 
     */ 
    public int getTotalCount();  
 
    /** 
     * 总页数 
     *  
     * @return 
     */ 
    public int getTotalPage();  
 
    /** 
     * 每页记录数 
     *  
     * @return 
     */ 
    public int getPageSize();  
 
    /** 
     * 当前页号 
     *  
     * @return 
     */ 
    public int getPageNo();  
 
    /** 
     * 是否第一页 
     *  
     * @return 
     */ 
    public boolean isFirstPage();  
 
    /** 
     * 是否最后一页 
     *  
     * @return 
     */ 
    public boolean isLastPage();  
 
    /** 
     * 返回下页的页号 
     */ 
    public int getNextPage();  
 
    /** 
     * 返回上页的页号 
     */ 
    public int getPrePage();  

package page;

/**
 * 可分页接口
 *
 * @author liufang
 *
 */
public interface Paginable {
 /**
  * 总记录数
  *
  * @return
  */
 public int getTotalCount();

 /**
  * 总页数
  *
  * @return
  */
 public int getTotalPage();

 /**
  * 每页记录数
  *
  * @return
  */
 public int getPageSize();

 /**
  * 当前页号
  *
  * @return
  */
 public int getPageNo();

 /**
  * 是否第一页
  *
  * @return
  */
 public boolean isFirstPage();

 /**
  * 是否最后一页
  *
  * @return
  */
 public boolean isLastPage();

 /**
  * 返回下页的页号
  */
 public int getNextPage();

 /**
  * 返回上页的页号
  */
 public int getPrePage();
}
 

SimplePage.java

view plaincopy to clipboardprint?
package page;  
 
public class SimplePage implements Paginable {  
    private static final long serialVersionUID = 1L;  
    public static final int DEF_COUNT = 20;  
 
    public SimplePage() {  
    }  
 
    public SimplePage(int pageNo, int pageSize, int totalCount) {  
        if (totalCount <= 0) {  
            this.totalCount = 0;  
        } else {  
            this.totalCount = totalCount;  
        }  
        if (pageSize <= 0) {  
            this.pageSize = DEF_COUNT;  
        } else {  
            this.pageSize = pageSize;  
        }  
        if (pageNo <= 0) {  
            this.pageNo = 1;  
        } else {  
            this.pageNo = pageNo;  
        }  
        if ((this.pageNo - 1) * this.pageSize >= totalCount) {  
            this.pageNo = totalCount / pageSize;  
        }  
    }  
 
    /** 
     * 调整分页参数,使合理化 
     */ 
    public void adjustPage() {  
        if (totalCount <= 0) {  
            totalCount = 0;  
        }  
        if (pageSize <= 0) {  
            pageSize = DEF_COUNT;  
        }  
        if (pageNo <= 0) {  
            pageNo = 1;  
        }  
        if ((pageNo - 1) * pageSize >= totalCount) {  
            pageNo = totalCount / pageSize;  
        }  
    }  
 
    public int getPageNo() {  
        return pageNo;  
    }  
 
    public int getPageSize() {  
        return pageSize;  
    }  
 
    public int getTotalCount() {  
        return totalCount;  
    }  
 
    public int getTotalPage() {  
        int totalPage = totalCount / pageSize;  
        if (totalCount % pageSize != 0 || totalPage == 0) {  
            totalPage++;  
        }  
        return totalPage;  
    }  
 
    public boolean isFirstPage() {  
        return pageNo <= 1;  
    }  
 
    public boolean isLastPage() {  
        return pageNo >= getTotalPage();  
    }  
 
    public int getNextPage() {  
        if (isLastPage()) {  
            return pageNo;  
        } else {  
            return pageNo + 1;  
        }  
    }  
 
    public int getPrePage() {  
        if (isFirstPage()) {  
            return pageNo;  
        } else {  
            return pageNo - 1;  
        }  
    }  
 
    protected int totalCount = 0;  
    protected int pageSize = 20;  
    protected int pageNo = 1;  
 
    public void setTotalCount(int totalCount) {  
        this.totalCount = totalCount;  
    }  
 
    public void setPageSize(int pageSize) {  
        this.pageSize = pageSize;  
    }  
 
    public void setPageNo(int pageNo) {  
        this.pageNo = pageNo;  
    }  

package page;

public class SimplePage implements Paginable {
 private static final long serialVersionUID = 1L;
 public static final int DEF_COUNT = 20;

 public SimplePage() {
 }

 public SimplePage(int pageNo, int pageSize, int totalCount) {
  if (totalCount <= 0) {
   this.totalCount = 0;
  } else {
   this.totalCount = totalCount;
  }
  if (pageSize <= 0) {
   this.pageSize = DEF_COUNT;
  } else {
   this.pageSize = pageSize;
  }
  if (pageNo <= 0) {
   this.pageNo = 1;
  } else {
   this.pageNo = pageNo;
  }
  if ((this.pageNo - 1) * this.pageSize >= totalCount) {
   this.pageNo = totalCount / pageSize;
  }
 }

 /**
  * 调整分页参数,使合理化
  */
 public void adjustPage() {
  if (totalCount <= 0) {
   totalCount = 0;
  }
  if (pageSize <= 0) {
   pageSize = DEF_COUNT;
  }
  if (pageNo <= 0) {
   pageNo = 1;
  }
  if ((pageNo - 1) * pageSize >= totalCount) {
   pageNo = totalCount / pageSize;
  }
 }

 public int getPageNo() {
  return pageNo;
 }

 public int getPageSize() {
  return pageSize;
 }

 public int getTotalCount() {
  return totalCount;
 }

 public int getTotalPage() {
  int totalPage = totalCount / pageSize;
  if (totalCount % pageSize != 0 || totalPage == 0) {
   totalPage++;
  }
  return totalPage;
 }

 public boolean isFirstPage() {
  return pageNo <= 1;
 }

 public boolean isLastPage() {
  return pageNo >= getTotalPage();
 }

 public int getNextPage() {
  if (isLastPage()) {
   return pageNo;
  } else {
   return pageNo + 1;
  }
 }

 public int getPrePage() {
  if (isFirstPage()) {
   return pageNo;
  } else {
   return pageNo - 1;
  }
 }

 protected int totalCount = 0;
 protected int pageSize = 20;
 protected int pageNo = 1;

 public void setTotalCount(int totalCount) {
  this.totalCount = totalCount;
 }

 public void setPageSize(int pageSize) {
  this.pageSize = pageSize;
 }

 public void setPageNo(int pageNo) {
  this.pageNo = pageNo;
 }
}
 

Pagination.java

view plaincopy to clipboardprint?
package page;  
 
import java.util.List;  
import java.io.Serializable;  
@SuppressWarnings("serial")  
public class Pagination<T extends Serializable> extends SimplePage implements java.io.Serializable,  
        Paginable {  
 
    public Pagination() {  
    }  
 
    public Pagination(int pageNo, int pageSize, int totalCount) {  
        super(pageNo, pageSize, totalCount);  
    }  
 
    public Pagination(int pageNo, int pageSize, int totalCount, List<T> list) {  
        super(pageNo, pageSize, totalCount);  
        this.list = list;  
    }  
 
    public int getFirstResult() {  
        return (pageNo - 1) * pageSize;  
    }  
 
    /** 
     * 当前页的数据 
     */ 
    private List<T> list;  
 
    public List<T> getList() {  
        return list;  
    }  
 
    public void setList(List<T> list) {  
        this.list = list;  
    }  

package page;

import java.util.List;
import java.io.Serializable;
@SuppressWarnings("serial")
public class Pagination<T extends Serializable> extends SimplePage implements java.io.Serializable,
  Paginable {

 public Pagination() {
 }

 public Pagination(int pageNo, int pageSize, int totalCount) {
  super(pageNo, pageSize, totalCount);
 }

 public Pagination(int pageNo, int pageSize, int totalCount, List<T> list) {
  super(pageNo, pageSize, totalCount);
  this.list = list;
 }

 public int getFirstResult() {
  return (pageNo - 1) * pageSize;
 }

 /**
  * 当前页的数据
  */
 private List<T> list;

 public List<T> getList() {
  return list;
 }

 public void setList(List<T> list) {
  this.list = list;
 }
}
 

分页的时候使用Pagination类就可以了~```

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/adaikiss/archive/2009/08/25/4483902.aspx

分享到:
评论

相关推荐

    自定义分页标签

    自定义的漂亮分页标签,支持上下翻页,直接跳转指定页

    强大的自定义标签分页,内有说明

    综合上述信息,这个压缩包可能包含了一个基于自定义标签实现的分页库,该库支持通过反射来动态配置分页参数,并且能够高效地处理ResultSet,实现数据库查询的分页。使用"fenPageTld"这个名字的文件很可能是该分页库...

    分页类 可自定义分页模板、对多个参数的URL分页

    通常,这个类会有一个方法(如`getPaginationHtml()`),返回HTML代码,包含了分页的“上一页”、“下一页”按钮以及页码列表。开发者可以在模板中自由定制这些元素的样式、布局和交互效果。 另一个关键文件`使用...

    JEECMS v2.3.2 Final版是JEECMS面世以来发布的第一个正式版是JEECMS面世以来发布的第一个正式

    五、面向未来的过渡,JEECMS v2.3.2 Final版是JEECMS面世以来发布的第一个正式版本,具有更大的灵活性和稳定性;-一、系统内核完全开源,为用户提供透明的管理平台,为java初学者提供良好的学习平台; 二、核心模板...

    freemarker及jeecms标签使用学习文档

    - **分页处理**:Jeecms的分页标签能轻松实现内容的分页显示。 5. **学习资源** - `Freemaker_入门+深入+开发指南+学习笔记.doc`:这份文档提供了从基础到高级的Freemarker学习路径,包括基本语法、模板设计原则...

    jeecms数据库表结构详解

    ### Jeecms数据库表结构详解 #### 一、概述 Jeecms是一款基于Java技术的开源内容管理系统(Content Management System, CMS),广泛应用于企业网站、新闻门户等网站平台建设。其核心优势在于高度可定制化与模块化...

    分页操作代码(全)及jar.zip

    这个“分页操作代码(全)及jar.zip”压缩包提供了一套完整的Java EE分页解决方案,包括数据库操作、页面交互以及必要的依赖库。下面将详细阐述其中涉及的关键知识点。 首先,分页的核心在于如何计算页码和每页显示...

    jeecms2012模板制作教程

    Jeecms提供了丰富的自定义标签,如文章列表标签、分页标签、评论标签等。通过这些标签,开发者可以方便地在模板中调用内容数据,减少直接编写Java代码的需求。 6. **页面布局与组件** 模板的布局由头部、导航、...

    jeecms开发指南

    1. **完全开源**:Jeecms 的内核是开放源代码的,这为开发者提供了透明的管理平台,同时也为初学者提供了一个学习 Java 的良好环境。 2. **模板管理**:核心模板以文件形式存储,支持模板的导入/导出,便于设计、...

    jeecms v9.3 正式版 安装包.zip

    对于技术达人来说,jeecms不仅提供全部源码,而且在研发之初即全面的考虑了二次开发的高效性和代码的高移植性,是一款非常容易上手和二次开发的产品。  JEECMSv8版本是一款集PC互联网、移动互联网和微信网站于一体...

    JEECMS3.x模板标签使用说明

    ### JEECMS3.x模板标签使用说明 #### 页面处理时间标签 **标签示例:** `[@process_time/]` 此标签用于展示当前页面的加载处理时间。它可以帮助开发者和管理员了解页面加载速度,并据此优化系统性能。 #### 页面...

    jeecms 2012.zip

    Jeecms v2012版是一款集新闻管理、图库管理、视频管理、下载系统、作品管理、产品发布及留言板于一体的综合性CMS系统。从2012版起,jeecms将更注重用户体验、系统性能和实际应用的研发,让jeecms的适用范围更广、...

    JEECMS2012系统使用手册2012-07美化版(pdf格式)

    ### JEECMS 2012 系统使用手册核心知识点总结 #### 一、系统简介 JEECMS是一款基于Java EE技术栈构建的内容管理系统(Content Management System, CMS),旨在为用户提供一套完整且易于操作的网站建设解决方案。该...

    jeecms数据库设计.pdf

    首先,我们可以看到JEECMS数据库设计中包含了多个表的设计说明。下面将逐个分析这些表及其字段,以及可能涉及的知识点。 1. jc_acquisitionCMS表 - acquisition_id: 采集id,主键,通常使用int(11)表示。 - site_...

    jeecms数据库设计

    jc_acquisitionCMS表是用于管理数据采集任务的核心表,该表详细记录了每个采集任务的相关配置信息,包括但不限于采集任务的名称、开始与结束时间、当前状态等关键属性。 **2. 字段解析** - **acquisition_id**:...

    我爱jeecms

    本文将深入探讨Jeecms的开发教程,包括系统的安装、标签的使用以及系统标签的概述。 一、Jeecms 安装教程 1. 环境准备:首先,你需要确保你的开发环境已经配置了Java运行环境(JRE)和Java开发工具(JDK),同时,...

    jeecms常用标签整理

    jeecms常用标签整理,来自于jeecms官网,官网上是分页网页式的,不方便查看与拷贝,因此重新整理一下,便于针对jeecms二次开发

    jeecms 标签使用说明

    结果列表通常包括搜索提示、结果数量以及处理时间信息。使用`[#list tag_list as s]`遍历搜索结果,并展示每个条目的详细信息,如标题、摘要、来源、浏览次数和发布时间。 3. **搜索结果列表标签 - [@cms_lucene_...

Global site tag (gtag.js) - Google Analytics