java中简单的翻页功能的实现(PageManager)

来源:互联网 发布:林天宝知乎 编辑:程序博客网 时间:2024/04/18 18:59

package util;
import java.util.List;

public class PageManager
{
    private List allRecords = null;//collection储存同一类型的对象的集合
    private int currentPage = 0;//当前页码
    private int totalPage = 0;//总页数
    private int recordPerPage = -1;//每页的对象数
    private int totalCount=0;//总的对象数
 //初始化
 public PageManager(List allRecords, int recordPerPage)
    {
        if (allRecords == null || recordPerPage < 1) return;

        this.allRecords = allRecords;
        this.recordPerPage = recordPerPage;
        this.totalCount=allRecords.size();
        if (allRecords.size() % recordPerPage == 0)
            this.totalPage = allRecords.size() / recordPerPage;
        else
            this.totalPage = allRecords.size() / recordPerPage + 1;
        this.currentPage = 0;
    }
    //获取所有对象集合
    public List getAllRecords()
    {
     return this.allRecords;
    }
 //获取当前页的的对象集合
    public List getCurrentPage()
    {
     return getPage(currentPage);
    }
    //根据序号获取该对象所在的页的对象集合
    public List getThePage(int recordno)
    {
     if (this.allRecords == null || this.allRecords.size() == 0)
        {
            this.currentPage = 0;
            return null;
        }
        int pageNo=1;
        if (recordno < 1) pageNo = 1;
       
        else if (recordno > this.allRecords.size())
         pageNo = this.totalPage;
        else
        {
         pageNo=recordno/this.recordPerPage+1;
        }
        this.currentPage = pageNo;
       
        int pageStart = (pageNo - 1) * this.recordPerPage;
        int pageEnd = pageStart + this.recordPerPage - 1;
        if (pageEnd > this.allRecords.size() - 1) pageEnd = this.allRecords.size() - 1;
       
        List result =this.allRecords.subList(pageStart, pageEnd+1);       
        return result;
    }
   //根据页码获取改页的对象集合
    public List getPage(int pageNo)
    {
        if (this.allRecords == null || this.allRecords.size() == 0)
        {
            this.currentPage = 0;
            return null;
        }
       
        if (pageNo < 1) pageNo = 1;
        if (pageNo > this.totalPage) pageNo = this.totalPage;
        this.currentPage = pageNo;
       
        int pageStart = (pageNo - 1) * this.recordPerPage;
        int pageEnd = pageStart + this.recordPerPage - 1;
        if (pageEnd > this.allRecords.size() - 1) pageEnd = this.allRecords.size() - 1;
        List result =this.allRecords.subList(pageStart, pageEnd+1);
        return result;
    }
    //获取下一页的对象集合
    public List getNextPage()
    {
        return getPage(this.currentPage + 1);
    }
     //获取上一页的对象集合
    public List getPreviousPage()
    {
        return getPage(this.currentPage - 1);
    }
   //获取第一页的对象集合 
    public List getFirstPage()
    {
        return getPage(1);
    }
  //获取最后一页的对象集合
    public List getLastPage()
    {
        return getPage(this.totalPage);
    }
   //获取总页数
 public int getTotalPage() {
  return totalPage;
 }
 //获取当前页码 
 public int getCurrentPageCount()
 {
  return this.currentPage;
 }
 //获取对象总数
 public int getTotalCount() {
  return totalCount;
 }


}
 

原创粉丝点击