天天看點

JSP分頁工具類

/**
 * 頁面裡的一頁資料的對象
 * @author BluceYoung
 *
 */
public class PageUtil<T> {
	private int pageNo;//目前第幾頁
	private int pageCount;//共多少頁
	private int pageSize=5;//每頁顯示多少條
	private int totalCount;//總資料條數
	List<T> listData=new ArrayList<T>();
	
	/**
	 * 擷取目前頁碼
	 * @return
	 */
	public int getPageNo() {
		return pageNo;
	}
	/**
	 * 擷取總頁數
	 * @return
	 */
	public int getPageCount() {
		return pageCount;
	}
	/**
	 * 擷取每頁資料條數
	 * @return
	 */
	public int getPageSize() {
		return pageSize;
	}
	/**
	 * 擷取總資料條數
	 * @return
	 */
	public int getTotalCount() {
		return totalCount;
	}
	/**
	 * 擷取本頁資料集合
	 * @return
	 */
	public List<T> getListData() {
		return listData;
	}
	
	
	
	/**
	 * 設定目前頁碼,下限1,上限pageCount
	 * @param pageNo
	 */
	public void setPageNo(int pageNo) {
		this.pageNo = pageNo;
		if(this.pageNo<1) {
			this.pageNo=1;
		}
		if(this.totalCount>0 && pageNo >pageCount) {//頁碼超過總頁數
			this.pageNo=pageCount;//設定為末頁
		}
	}
	/**
	 * 設定每頁資料條數
	 * @param pageSize
	 */
	public void setPageSize(int pageSize) {
		this.pageSize = pageSize;
	}
	/**
	 * 設定總資料條數
	 * @param totalCount
	 */
	public void setTotalCount(int totalCount) {
		this.totalCount = totalCount;
		//計算總頁數
		this.pageCount=totalCount/pageSize;
		if(totalCount%pageSize>0) {//頁數不夠,得加一頁
			this.pageCount++;
		}
	}
	/**
	 * 設定目前頁資料
	 * @param listData
	 */
	public void setListData(List<T> listData) {
		this.listData = listData;
	}
	
	/**
	 * 執行個體化一個資料頁,确定:每頁條數、總資料數、總頁數
	 * @param pageSize
	 * @param totalCount
	 */
	public PageUtil(int pageSize, int totalCount) {
		super();
		this.pageSize = pageSize;
		setTotalCount(totalCount);
	}
	
	/**
	 * 根據頁碼擷取查詢語句的limit開始
	 * @param pageNo
	 * @return
	 */
	public int getLimitStart(int pageNo) {
		return (pageNo-1)*this.pageSize;
	}
}