`

分页page

 
阅读更多
package com.dongly.common.page;

/**
 * 分页接口
 */
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 com.dongly.common.page;

/**
 * 简单分页类
 */
public class SimplePage implements Paginable {
	private static final long serialVersionUID = 1L;
	public static final int DEF_COUNT = 20;

	/**
	 * 检查页码 checkPageNo
	 * 
	 * @param pageNo
	 * @return if pageNo==null or pageNo<1 then return 1 else return pageNo
	 */
	public static int cpn(Integer pageNo) {
		return (pageNo == null || pageNo < 1) ? 1 : pageNo;
	}

	public SimplePage() {
	}

	/**
	 * 构造器
	 * 
	 * @param pageNo
	 *            页码
	 * @param pageSize
	 *            每页几条数据
	 * @param totalCount
	 *            总共几条数据
	 */
	public SimplePage(int pageNo, int pageSize, int totalCount) {
		setTotalCount(totalCount);
		setPageSize(pageSize);
		setPageNo(pageNo);
		adjustPageNo();
	}

	/**
	 * 调整页码,使不超过最大页数
	 */
	public void adjustPageNo() {
		if (pageNo == 1) {
			return;
		}
		int tp = getTotalPage();
		if (pageNo > tp) {
			pageNo = tp;
		}
	}

	/**
	 * 获得页码
	 */
	public int getPageNo() {
		return pageNo;
	}

	/**
	 * 每页几条数据
	 */
	public int getPageSize() {
		return pageSize;
	}

	/**
	 * 总共几条数据
	 */
	public int getTotalCount() {
		return totalCount;
	}

	/**
	 * 总共几页
	 */
	public int getTotalPage() {
		int totalPage = totalCount / pageSize;
		if (totalPage == 0 || totalCount % pageSize != 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;

	/**
	 * if totalCount<0 then totalCount=0
	 * 
	 * @param totalCount
	 */
	public void setTotalCount(int totalCount) {
		if (totalCount < 0) {
			this.totalCount = 0;
		} else {
			this.totalCount = totalCount;
		}
	}

	/**
	 * if pageSize< 1 then pageSize=DEF_COUNT
	 * 
	 * @param pageSize
	 */
	public void setPageSize(int pageSize) {
		if (pageSize < 1) {
			this.pageSize = DEF_COUNT;
		} else {
			this.pageSize = pageSize;
		}
	}

	/**
	 * if pageNo < 1 then pageNo=1
	 * 
	 * @param pageNo
	 */
	public void setPageNo(int pageNo) {
		if (pageNo < 1) {
			this.pageNo = 1;
		} else {
			this.pageNo = pageNo;
		}
	}
}

 

 

 

package com.dongly.common.page;

import java.util.List;

/**
 * 列表分页。包含list属性。
 */
@SuppressWarnings("serial")
public class Pagination extends SimplePage implements java.io.Serializable,
		Paginable {

	public Pagination() {
	}

	/**
	 * 构造器
	 * 
	 * @param pageNo
	 *            页码
	 * @param pageSize
	 *            每页几条数据
	 * @param totalCount
	 *            总共几条数据
	 */
	public Pagination(int pageNo, int pageSize, int totalCount) {
		super(pageNo, pageSize, totalCount);
	}

	/**
	 * 构造器
	 * 
	 * @param pageNo
	 *            页码
	 * @param pageSize
	 *            每页几条数据
	 * @param totalCount
	 *            总共几条数据
	 * @param list
	 *            分页内容
	 */
	public Pagination(int pageNo, int pageSize, int totalCount, List<?> list) {
		super(pageNo, pageSize, totalCount);
		this.list = list;
	}

	/**
	 * 第一条数据位置
	 * 
	 * @return
	 */
	public int getFirstResult() {
		return (pageNo - 1) * pageSize;
	}

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

	/**
	 * 获得分页内容
	 * 
	 * @return
	 */
	public List<?> getList() {
		return list;
	}

	/**
	 * 设置分页内容
	 * 
	 * @param list
	 */
	@SuppressWarnings("unchecked")
	public void setList(List list) {
		this.list = list;
	}
}

 

分享到:
评论

相关推荐

    分页 page 带数据库

    本篇文章将深入探讨“分页 page 带数据库”的概念、实现方式以及其在初学者学习过程中的重要性。 一、分页概念 分页是将大数据集划分为若干小部分,每部分称为一页,用户每次只加载和查看一页的数据,而不是一次性...

    DapperEx+datagridview+分页page.zip

    本示例“DapperEx+datagridview+分页page.zip”聚焦于利用Dapper扩展库和DataGridView控件实现数据的分页显示,这在Web或桌面应用中十分常见。 Dapper是一个轻量级的.NET数据库访问库,它提供了简单而高效的SQL映射...

    一个分页page技术

    "一个分页page技术"的标题表明我们将讨论如何实现一个类似Google分页功能的解决方案。这个功能使得用户可以方便地浏览和导航大量数据,而不需要一次性加载所有内容,从而提高用户体验并减轻服务器负担。 描述中提到...

    分页page_struts2_.rar

    标题“分页page_struts2_.rar”暗示了这是一个关于Struts2框架中实现分页功能的示例或教程。Struts2是一个流行的Java web应用框架,它提供了强大的MVC(模型-视图-控制器)架构来组织和管理应用程序。在处理大量数据...

    thinkphp视图分页Page类分页功能代码下载

    thinkphp视图分页Page类分页功能代码下载 利用viewmodel模型多表分页功能 利用D封装类。进行分页代码

    bootstrap 分页 page

    bootstrap 分页 pagebootstrap 分页 pagebootstrap 分页 pagebootstrap 分页 pagebootstrap 分页 pagebootstrap 分页 page

    分页Page类

    分页查询时,可以用来封装对象, 实现分页查询////////

    page分页jsp页面以及后台代码

    "page分页jsp页面以及后台代码"这个主题涵盖的是如何在Java Web环境中实现前端(jsp)和后端(通常为Servlet或Controller)的分页功能。以下将详细介绍这一过程。 首先,我们需要理解分页的基本概念。分页通常包括...

    php万能分页page类

    php万能分页源码附多种分页效果 所有样式 完整配置 pageft($total,$pageSize,1,1,1,5); pageft($total,$pageSize,0,1,1,5); pageft($total,$pageSize,0,0,1,5);...&gt;&lt;/div&gt; class 中为分页样式,中间调用分页效果

    工具类->分页Page.java

    Page分页java类 Page.getPageIndex(); Page.getPageCount(); Page.getPageSize(); ...

    通用分页工具类PageInfo.java

    通用分页工具类PageInfo.java

    java组件开发(27)ResponseUtils与FileDownloadServlet和分页PageSplit对象

    java组件开发(27)ResponseUtils与FileDownloadServlet和分页PageSplit对象

    超强php分页打包 通用分页 万能分页 ajax分页 google分页

    在提供的"分页page示例"中,你可能会找到实现这些分页方式的具体代码和示例,包括PHP处理逻辑、HTML模板和可能的JavaScript代码。通过学习和研究这些示例,你可以更好地理解和应用这些分页技术到自己的项目中。 总...

    分页 技术 java 实现 page.jsp

    page.jsp 分页 技术 java 实现 page

    jqueryPage分页

    **jQueryPage分页技术详解** 在网页开发中,数据量庞大的时候,为了提高用户体验和页面加载速度,通常会采用分页技术。`jQueryPage` 是一个专门针对此需求设计的jQuery插件,它使得在网页中实现翻页和tab切换功能变...

    java中实现分页查询的page类

    可用于项目开发的分页查询,简单使用,步骤固定,可方便使用

    ajax分页page

    完美的分页技术,可以很友好的实现分页技术,运用了很先进的技术呢

    Page分页实现代码

    分页通常涉及到两个关键参数:当前页码($currentPage)和每页显示的数据数量($itemsPerPage)。通过这两个参数,我们可以计算出应该从数据库中获取哪些数据。 1. **查询总记录数** 在实现分页前,我们需要先获取...

    如何使用分页插件.pdf

    业务代码中使用分页时,通常不需要显式地声明一个Page对象,可以直接在Mapper接口方法中获取分页信息。 5. Spring Boot使用方法 当前文档中提到Spring Boot待定使用方法,不过通常情况下,如果已经添加了依赖,可以...

    JAVA大数据分页算法

    8. **Spring Data JPA分页**:对于使用JPA和Hibernate的Java应用,Spring Data提供了一套便捷的分页API,如`Pageable`接口和`Page`对象,可以直接在Repository层实现分页查询。 9. **流式处理**:Java 8引入的...

Global site tag (gtag.js) - Google Analytics