⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 page.java

📁 提供hibernate,spring
💻 JAVA
字号:
/**
 * 
 */
package phz.util.page;

public class Page {

	/** 当前页码 */
	private int currentPage;
	/** 起始结果 */
	private int pageStart;
	/** 每页结果数 */
	private int pageSize;
	/**
	 * 总共结果数
	 * <p>
	 * 必须提供,否则无法分页,所以在分页前,应该先从数据库查出要分页的数据总的结果数
	 * <P>
	 * ^_^,这谁不知道呀!
	 */
	private int totalSize;
	/** 总共页数 */
	private int totalPage;
	/** 分页栏长度 */
	private int pageBarMaxSize;
	/** 页码数组 */
	private int[] pages;

	/**
	 * 全构造器
	 * 
	 * @param currentPage
	 *            当前页码
	 * @param totalSize
	 *            总共结果数
	 * @param pageSize
	 *            每页结果数
	 * @param pageBarMaxSize
	 *            分页栏长度
	 */
	public Page(int currentPage, int totalSize, int pageSize, int pageBarMaxSize) {
		this.currentPage = currentPage;
		this.totalSize = totalSize;
		this.pageSize = pageSize;
		this.pageBarMaxSize = pageBarMaxSize;
	}

	/**
	 * 默认分页栏长度为10
	 * 
	 * @param currentPage
	 *            当前页码
	 * @param totalSize
	 *            总共结果数
	 * @param pageSize
	 *            每页结果数
	 */
	public Page(int currentPage, int totalSize, int pageSize) {
		this.currentPage = currentPage;
		this.totalSize = totalSize;
		this.pageSize = pageSize;
		this.pageBarMaxSize = 10;
	}

	/**
	 * 默认 每页结果数5条 分页栏长度为10
	 * <p>
	 * 该构造器应该是最常用的
	 * 
	 * @param currentPage
	 *            当前页码
	 * @param totalSize
	 *            总共结果数
	 */
	public Page(int currentPage, int totalSize) {
		this.currentPage = currentPage;
		this.totalSize = totalSize;
		this.pageSize = 5;
		this.pageBarMaxSize = 10;
	}

	/**
	 * 默认 当前也为第1页 每页结果数5条 分页栏长度为10
	 * 
	 * @param totalSize
	 *            总共结果数
	 */
	public Page(int totalSize) {
		this.currentPage = 1;
		this.totalSize = totalSize;
		this.pageSize = 5;
		this.pageBarMaxSize = 10;
	}

	/** 是否有首页 */
	public boolean isHasFirst() {
		if (getCurrentPage() == 1)
			return false;
		return true;
	}

	/** 是否有尾页 */
	public boolean isHasLast() {
		if (getCurrentPage() == getTotalPage())
			return false;
		return true;
	}

	/** 是否有前一页 */
	public boolean isHasPrevious() {
		if (isHasFirst())
			return true;
		return false;
	}

	/** 是否有下一页 */
	public boolean isHasNext() {
		if (isHasLast())
			return true;
		return false;
	}

	public int getCurrentPage() {
		if (currentPage < 1 || currentPage > getTotalPage()) {
			return 1;
		}
		return currentPage;
	}

	public void setCurrentPage(int currentPage) {
		this.currentPage = currentPage;
	}

	public int getPageStart() {
		pageStart = (getCurrentPage() - 1) * getPageSize();
		return pageStart;
	}

	public int getPageSize() {
		return pageSize;
	}

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

	public int getTotalSize() {
		return totalSize;
	}

	public void setTotalSize(int totalSize) {
		this.totalSize = totalSize;
	}

	/** 获得总共页数 */
	public int getTotalPage() {
		totalPage = getTotalSize() / getPageSize();
		if (getTotalSize() % getPageSize() != 0)
			totalPage++;
		return totalPage;
	}

	public int getPageBarMaxSize() {
		return pageBarMaxSize;
	}

	public void setPageBarMaxSize(int pageBarMaxSize) {
		this.pageBarMaxSize = pageBarMaxSize;
	}

	/** 获得页码数组 像: 1 2 3 4 5 6 7 8 9 10 */
	public int[] getPages() {
		int startPage = getCurrentPage() / getPageBarMaxSize()
				* getPageBarMaxSize() + 1;
		int endPage = getCurrentPage() / getPageBarMaxSize()
				* getPageBarMaxSize() + getPageBarMaxSize();
		if (getCurrentPage() % getPageBarMaxSize() == 0) {
			startPage -= getPageBarMaxSize();
			endPage -= getPageBarMaxSize();
		}

		startPage = startPage < 1 ? 1 : startPage;
		startPage = startPage > getTotalPage() ? getTotalPage() : startPage;
		endPage = endPage < 1 ? 1 : endPage;
		endPage = endPage > getTotalPage() ? getTotalPage() : endPage;

		pages = new int[endPage - startPage + 1];
		for (int i = startPage; i < endPage + 1; i++) {
			pages[i - startPage] = i;
		}
		return pages;
	}

	// 免费赠送的测试,o(∩_∩)o
	// public static void main(String[] args) {
	// Page page = new Page(8, 113, 5, 10);
	// if (page.isHasFirst()) {
	// System.out.print(" 首页 ");// 首页
	// }
	// if (page.isHasPrevious()) {
	// System.out.print(" 上一页 ");// 上一页
	// }
	// int[] is = page.getPages();
	// for (int i = 0; i < is.length; i++) {
	// System.out.print(is[i] == page.getCurrentPage() ? " [" + is[i]
	// + "] " : " " + is[i] + " ");// 1 2 3 4 5 6 7 [8] 9 10
	// }
	// if (page.isHasNext()) {
	// System.out.print(" 下一页 ");// 下一页
	// }
	// if (page.isHasLast()) {
	// System.out.print(" 尾页 ");// 尾页
	// }
	// System.out.println();
	// System.out.print(" 当前第 " + page.getCurrentPage() + " 页,总共有 "
	// + page.getTotalPage() + " 页 ");
	// }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -