Java分页工具类及其使用(示例分享)

所属分类: 软件编程 / java 阅读数: 29
收藏 0 赞 0 分享

Pager.java

package pers.kangxu.datautils.common;
import java.io.Serializable;
import java.util.List;
/**
 * 
 * <b> 分页通用类 </b>
 * 
 * @author kangxu
 * @param <T>
 * 
 */
public class Pager<T> implements Serializable {
 /**
 * 
 */
 private static final long serialVersionUID = 4542617637761955078L;
 /**
 * currentPage 当前页
 */
 private int currentPage = 1;
 /**
 * pageSize 每页大小
 */
 private int pageSize = 10;
 /**
 * pageTotal 总页数
 */
 private int pageTotal;
 /**
 * recordTotal 总条数
 */
 private int recordTotal = 0;
 /**
 * previousPage 前一页
 */
 private int previousPage;
 /**
 * nextPage 下一页
 */
 private int nextPage;
 /**
 * firstPage 第一页
 */
 private int firstPage = 1;
 /**
 * lastPage 最后一页
 */
 private int lastPage;
 /**
 * content 每页的内容
 */
 private List<T> content;
 // 以下set方式是需要赋值的
 /**
 * 设置当前页 <br>
 * 
 * @author kangxu
 * 
 * @param currentPage
 */
 public void setCurrentPage(int currentPage) {
 this.currentPage = currentPage;
 }
 /**
 * 设置每页大小,也可以不用赋值,默认大小为10条 <br>
 * 
 * @author kangxu
 * 
 * @param pageSize
 */
 public void setPageSize(int pageSize) {
 this.pageSize = pageSize;
 }
 /**
 * 设置总条数,默认为0 <br>
 * 
 * @author kangxu
 * 
 * @param recordTotal
 */
 public void setRecordTotal(int recordTotal) {
 this.recordTotal = recordTotal;
 otherAttr();
 }
 /**
 * 设置分页内容 <br>
 * 
 * @author kangxu
 * 
 * @param content
 */
 public void setContent(List<T> content) {
 this.content = content;
 }
 /**
 * 设置其他参数
 * 
 * @author kangxu
 * 
 */
 public void otherAttr() {
 // 总页数
 this.pageTotal = this.recordTotal % this.pageSize > 0 ? this.recordTotal / this.pageSize + 1 : this.recordTotal / this.pageSize;
 // 第一页
 this.firstPage = 1;
 // 最后一页
 this.lastPage = this.pageTotal;
 // 前一页
 if (this.currentPage > 1) {
 this.previousPage = this.currentPage - 1;
 } else {
 this.previousPage = this.firstPage;
 }
 // 下一页
 if (this.currentPage < this.lastPage) {
 this.nextPage = this.currentPage + 1;
 } else {
 this.nextPage = this.lastPage;
 }
 }
 // 放开私有属性
 public int getCurrentPage() {
 return currentPage;
 }
 public int getPageSize() {
 return pageSize;
 }
 public int getPageTotal() {
 return pageTotal;
 }
 public int getRecordTotal() {
 return recordTotal;
 }
 public int getPreviousPage() {
 return previousPage;
 }
 public int getNextPage() {
 return nextPage;
 }
 public int getFirstPage() {
 return firstPage;
 }
 public int getLastPage() {
 return lastPage;
 }
 public List<T> getContent() {
 return content;
 }
 @Override
 public String toString() {
 return "Pager [currentPage=" + currentPage + ", pageSize=" + pageSize
 + ", pageTotal=" + pageTotal + ", recordTotal=" + recordTotal
 + ", previousPage=" + previousPage + ", nextPage=" + nextPage
 + ", firstPage=" + firstPage + ", lastPage=" + lastPage
 + ", content=" + content + "]";
 }
}

使用 PagerTester.java

package pers.kangxu.datautils.utils;
import java.util.ArrayList;
import java.util.List;
import pers.kangxu.datautils.common.Pager;
/**
 * 分页数据测试
 * <b>
 *
 * </b>
 * @author kangxu
 *
 */
public class PagerTester {
 public static void main(String[] args) {
 Pager<String> pager = new Pager<String>();
 List<String> content = new ArrayList<String>();
 content.add("str1");
 content.add("str2");
 content.add("str3");
 content.add("str4");
 content.add("str5");
 content.add("str6");
 content.add("str7");
 content.add("str8");
 content.add("str9");
 content.add("str10");
 pager.setCurrentPage(1);
 pager.setPageSize(10);
 pager.setRecordTotal(62);
 pager.setContent(content);
 System.out.println(pager);
 }
}

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持脚本之家!

更多精彩内容其他人还在看

Java的面向对象编程基本概念学习笔记整理

这篇文章主要介绍了Java的面向对象编程基本概念学习笔记整理,包括类与方法以及多态等支持面向对象语言中的重要特点,需要的朋友可以参考下
收藏 0 赞 0 分享

Eclipse下编写java程序突然不会自动生成R.java文件和包的解决办法

这篇文章主要介绍了Eclipse下编写java程序突然不会自动生成R.java文件和包的解决办法 的相关资料,需要的朋友可以参考下
收藏 0 赞 0 分享

基于Java实现杨辉三角 LeetCode Pascal's Triangle

这篇文章主要介绍了基于Java实现杨辉三角 LeetCode Pascal's Triangle的相关资料,需要的朋友可以参考下
收藏 0 赞 0 分享

Java中Spring获取bean方法小结

Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架,如何在程序中获取Spring配置的bean呢?下面通过本文给大家介绍Java中Spring获取bean方法小结,对spring获取bean方法相关知识感兴趣的朋友一起学习吧
收藏 0 赞 0 分享

如何计算Java对象占用了多少空间?

在Java中没有sizeof运算符,所以没办法知道一个对象到底占用了多大的空间,但是在分配对象的时候会有一些基本的规则,我们根据这些规则大致能判断出来对象大小,需要的朋友可以参考下
收藏 0 赞 0 分享

剖析Java中的事件处理与异常处理机制

这篇文章主要介绍了Java中的事件处理与异常处理机制,讲解Java是如何对事件或者异常作出响应以及定义异常的一些方法,需要的朋友可以参考下
收藏 0 赞 0 分享

详解Java的Struts2框架的结构及其数据转移方式

这篇文章主要介绍了详解Java的Struts2框架的结构及其数据转移方式,Struts框架是Java的SSH三大web开发框架之一,需要的朋友可以参考下
收藏 0 赞 0 分享

Java封装好的mail包发送电子邮件的类

本文给大家分享了2个java封装好的mail包发送电子邮件的类,并附上使用方法,小伙伴们可以根据自己的需求自由选择。
收藏 0 赞 0 分享

在Java的Struts中判断是否调用AJAX及用拦截器对其优化

这篇文章主要介绍了在Java的Struts中判断是否调用AJAX及用拦截器对其优化的方法,Struts框架是Java的SSH三大web开发框架之一,需要的朋友可以参考下
收藏 0 赞 0 分享

java多线程Future和Callable类示例分享

JAVA多线程实现方式主要有三种:继承Thread类、实现Runnable接口、使用ExecutorService、Callable、Future实现有返回结果的多线程。其中前两种方式线程执行完后都没有返回值,只有最后一种是带返回值的。今天我们就来研究下Future和Callab
收藏 0 赞 0 分享
查看更多