java 分頁公用類

jopen 12年前發布 | 24K 次閱讀 Java Java開發

package com.cn.ohd.face.payment.pageutil;

import java.util.ArrayList; import java.util.Enumeration; import java.util.List;

import javax.servlet.http.HttpServletRequest;

import java.util.Map;

public class PageNumber<E> {

private int totals;

private List<E> bigList;  //總記錄集

private List<E> smallList; //當頁顯示的記錄集

private int currentPage = 1;  //當前頁

private int pages;  //總頁數

private int recorderPage =10; //每頁記錄數

private int privious; //上一頁

private int next; //下一頁

private boolean firstPage;//第一頁

private boolean lastPage; //最后一頁

private String url;

public PageNumber(HttpServletRequest request, List bigList)
{
    //根據大List獲得總記錄數和總頁數
    this.bigList = bigList;
    totals = bigList.size();
    if (totals % recorderPage == 0) {
        pages = totals / recorderPage;
    } else {
        pages = totals / recorderPage + 1;
    }

    //從請求中獲得要顯示的頁碼
    String page = request.getParameter("pageNo");
    if(page!=null && !"".equals(page))
    {            
        currentPage=Integer.parseInt(page);
    }
    //根據頁碼獲得小List
    if (currentPage == 1) {
        firstPage = true;
    } else {
        firstPage = false;
    }
    if (currentPage == pages) {
        lastPage = true;
    } else {
        lastPage = false;
    }
    privious = currentPage - 1;
    next = currentPage + 1;
    this.smallList = new ArrayList<E>();
    for (int i = (currentPage - 1) * recorderPage; i < currentPage
            * recorderPage
            && i < totals; i++) {
        smallList.add((E) bigList.get(i));
    }
    //設置URL參數
    Enumeration en = request.getParameterNames();
    Map map = request.getParameterMap();
    StringBuffer sb = new StringBuffer();
    sb.append(request.getRequestURI());
    int i=0;
    while(en.hasMoreElements())
    {
        String paramName = (String)en.nextElement();
        if(!paramName.equals("pageNo"))
        {
            if(i==0)
            {
                sb.append("?");
            }else{
                sb.append("&");
            }
            sb.append(paramName).append("=");
            String[] value = (String[])map.get(paramName);
            sb.append(value[0]);
            i++;
        }
    }
    this.url = sb.toString();
}
public String getUrl() {
    return url;
}

public void setUrl(HttpServletRequest request) {
    this.url = request.getRequestURI();
}

public boolean isFirstPage() {
    return firstPage;
}

public void setFirstPage(boolean firstPage) {
    this.firstPage = firstPage;
}

public boolean isLastPage() {
    return lastPage;
}

public void setLastPage(boolean lastPage) {
    this.lastPage = lastPage;
}

public int getNext() {
    return next;
}

public void setNext(int next) {
    this.next = next;
}

public int getPrivious() {
    return privious;
}

public void setPrivious(int privious) {
    this.privious = privious;
}

public List<E> getBigList() {
    return bigList;
}

public void setBigList(List<E> bigList) {
    this.bigList = bigList;
    totals = bigList.size();
    if (totals % recorderPage == 0) {
        pages = totals / recorderPage;
    } else {
        pages = totals / recorderPage + 1;
    }

}

public int getCurrentPage() {
    return currentPage;
}

public void setCurrentPage(int a) {

    this.currentPage = a;
    if (currentPage == 1) {
        firstPage = true;
    } else {
        firstPage = false;
    }
    if (currentPage == pages) {
        lastPage = true;
    } else {
        lastPage = false;
    }
    privious = a - 1;
    next = a + 1;
    this.smallList = new ArrayList<E>();
    for (int i = (currentPage - 1) * recorderPage; i < currentPage
            * recorderPage
            && i < totals; i++) {
        smallList.add(bigList.get(i));
    }

}

public int getPages() {
    return pages;
}

public void setPages(int pages) {
    this.pages = pages;
}

public List<E> getSmallList() {
    return smallList;
}

public void setSmallList(List<E> smallList) {
    this.smallList = smallList;
}

public int getTotals() {
    return totals;
}

public void setTotals(int totals) {
    this.totals = totals;
}

public int getRecorderPage() {
    return recorderPage;
}

public void setRecorderPage(int recorderPage) {
    this.recorderPage = recorderPage;
}

public void clearBigList()
{
    this.bigList = null;
}

}</pre>來自:http://www.cnblogs.com/leess/archive/2012/11/17/2774503.html

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!