分页工具类及其使用

Pager.java

  1 package pers.kangxu.datautils.common;
  2
  3 import java.io.Serializable;
  4 import java.util.List;
  5
  6 /**
  7  *
  8  * <b> 分页通用类 </b>
  9  *
 10  * @author kangxu
 11  * @param <T>
 12  *
 13  */
 14 public class Pager<T> implements Serializable {
 15
 16     /**
 17      *
 18      */
 19     private static final long serialVersionUID = 4542617637761955078L;
 20
 21     /**
 22      * currentPage 当前页
 23      */
 24     private int currentPage = 1;
 25     /**
 26      * pageSize 每页大小
 27      */
 28     private int pageSize = 10;
 29     /**
 30      * pageTotal 总页数
 31      */
 32     private int pageTotal;
 33     /**
 34      * recordTotal 总条数
 35      */
 36     private int recordTotal = 0;
 37     /**
 38      * previousPage 前一页
 39      */
 40     private int previousPage;
 41     /**
 42      * nextPage 下一页
 43      */
 44     private int nextPage;
 45     /**
 46      * firstPage 第一页
 47      */
 48     private int firstPage = 1;
 49     /**
 50      * lastPage 最后一页
 51      */
 52     private int lastPage;
 53     /**
 54      * content 每页的内容
 55      */
 56     private List<T> content;
 57
 58     // 以下set方式是需要赋值的
 59     /**
 60      * 设置当前页 <br>
 61      *
 62      * @author kangxu
 63      *
 64      * @param currentPage
 65      */
 66     public void setCurrentPage(int currentPage) {
 67         this.currentPage = currentPage;
 68     }
 69
 70     /**
 71      * 设置每页大小,也可以不用赋值,默认大小为10条 <br>
 72      *
 73      * @author kangxu
 74      *
 75      * @param pageSize
 76      */
 77     public void setPageSize(int pageSize) {
 78         this.pageSize = pageSize;
 79     }
 80
 81     /**
 82      * 设置总条数,默认为0 <br>
 83      *
 84      * @author kangxu
 85      *
 86      * @param recordTotal
 87      */
 88     public void setRecordTotal(int recordTotal) {
 89         this.recordTotal = recordTotal;
 90         otherAttr();
 91     }
 92
 93     /**
 94      * 设置分页内容 <br>
 95      *
 96      * @author kangxu
 97      *
 98      * @param content
 99      */
100     public void setContent(List<T> content) {
101         this.content = content;
102     }
103
104     /**
105      * 设置其他参数
106      *
107      * @author kangxu
108      *
109      */
110     public void otherAttr() {
111         // 总页数
112         this.pageTotal = this.recordTotal % this.pageSize > 0 ? this.recordTotal / this.pageSize + 1 : this.recordTotal / this.pageSize;
113         // 第一页
114         this.firstPage = 1;
115         // 最后一页
116         this.lastPage = this.pageTotal;
117         // 前一页
118         if (this.currentPage > 1) {
119             this.previousPage = this.currentPage - 1;
120         } else {
121             this.previousPage = this.firstPage;
122         }
123         // 下一页
124         if (this.currentPage < this.lastPage) {
125             this.nextPage = this.currentPage + 1;
126         } else {
127             this.nextPage = this.lastPage;
128         }
129     }
130
131     // 放开私有属性
132     public int getCurrentPage() {
133         return currentPage;
134     }
135
136     public int getPageSize() {
137         return pageSize;
138     }
139
140     public int getPageTotal() {
141         return pageTotal;
142     }
143
144     public int getRecordTotal() {
145         return recordTotal;
146     }
147
148     public int getPreviousPage() {
149         return previousPage;
150     }
151
152     public int getNextPage() {
153         return nextPage;
154     }
155
156     public int getFirstPage() {
157         return firstPage;
158     }
159
160     public int getLastPage() {
161         return lastPage;
162     }
163
164     public List<T> getContent() {
165         return content;
166     }
167
168     @Override
169     public String toString() {
170         return "Pager [currentPage=" + currentPage + ", pageSize=" + pageSize
171                 + ", pageTotal=" + pageTotal + ", recordTotal=" + recordTotal
172                 + ", previousPage=" + previousPage + ", nextPage=" + nextPage
173                 + ", firstPage=" + firstPage + ", lastPage=" + lastPage
174                 + ", content=" + content + "]";
175     }
176
177
178
179 }

使用 PagerTester.java

 1 package pers.kangxu.datautils.utils;
 2
 3 import java.util.ArrayList;
 4 import java.util.List;
 5
 6 import pers.kangxu.datautils.common.Pager;
 7
 8 /**
 9  * 分页数据测试
10  * <b>
11  *
12  * </b>
13  * @author kangxu
14  *
15  */
16 public class PagerTester {
17
18     public static void main(String[] args) {
19
20         Pager<String> pager = new Pager<String>();
21
22         List<String> content = new ArrayList<String>();
23         content.add("str1");
24         content.add("str2");
25         content.add("str3");
26         content.add("str4");
27         content.add("str5");
28         content.add("str6");
29         content.add("str7");
30         content.add("str8");
31         content.add("str9");
32         content.add("str10");
33
34         pager.setCurrentPage(1);
35         pager.setPageSize(10);
36         pager.setRecordTotal(62);
37         pager.setContent(content);
38
39         System.out.println(pager);
40
41     }
42
43 }
时间: 2024-08-07 21:03:40

分页工具类及其使用的相关文章

c#分页工具类,完美实现List分页

using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace ProjectProgress.BLL { /// <summary> /// 分页工具类 /// </summary> /// <typeparam name="T"></typeparam> public class PagingUtil<T

Java Web的分页工具类

最近写一个java web项目,以前分页的工具类,都是基础架构的人写好了的.也没有去细看,现在遇到这个状况. 就整理一下思路,自己写了一个分页的工具类.写的不好之处,还望斧正. 下面是我的代码: PageUtil.java 1 package util; 2 3 import java.util.Map; 4 5 /** 6 * 分页工具类 7 * @author lyh 8 * 9 */ 10 public class PageUtil { 11 private int total; //总数

分页 工具类 前后台代码 Java JavaScript (ajax) 实现 讲解

[博客园cnblogs笔者m-yb原创, 转载请加本文博客链接,笔者github: https://github.com/mayangbo666,公众号aandb7,QQ群927113708]https://www.cnblogs.com/m-yb/p/9986309.html分页功能的实现可以使用各种插件, 笔者今日闲来无事, 写了 分页工具类 前后台代码 Java JavaScript 的 实现及思路梳理.供大家参考.分页功能的需求一般有: 当前页/每页条数/总页数/总记录数/起始记录数/数

个人常用工具类:分页工具类

import java.io.Serializable; import java.util.List; // 分页工具类 public class PageBean implements Serializable { private static final long serialVersionUID = -8741766802354222579L; private int pageSize = 5; // 每页显示多少条记录 private int currentPage = 1; //当前第

通用分页工具类

一.本工具与数据库.框架.展现层无关.代码如下: /** * 用于分页的工具类 */ public class Pager<T> { private List<T> list = new ArrayList<T>(); //对象记录结果集 private int total = 0; // 总记录数 private int pageSize = 10; // 每页显示记录数 private int pageCount = 1; // 总页数 private int pa

Java内存分页工具类

前言 工作过程中,经常会遇到基于内存数据进行分页处理的情况,例如批量更新数据库时,集合过大需要分批更新的情况,还有例如对缓存中的集合数据进行分页获取这种情况. 本文提供了通用的内存分页工具,参考了网络上的一些代码,主要基于 subList() 方法实现,希望对你有所帮助!工具类源码在本文底部. 本文原文链接地址:http://nullpointer.pw/Java%E5%86%85%E5%AD%98%E5%88%86%E9%A1%B5%E5%B7%A5%E5%85%B7%E7%B1%BB.htm

分页工具类 BaseAction

package com.xxxxxxx.bos.web.action.common; import java.io.IOException; import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; import java.util.HashMap; import java.util.List; import java.util.Map; import org.apache.struts2.Servlet

Freemarker自定义分页工具类

[#--分页思路1 每页显示固定的页数 尽量保持当前页在显示的中央部位 1. 如果当前页号小于或者等于页面要显示的页数的一半 则按照以下算法计算显示 如果总页数小于或者等于页面要显示的页数   则从第一页显示到总页数(最后一页) 如果总页数大于页面要显示的页数  则从第一页显示到页面要显示的页数 2. 如果当前页号大于页面要显示的页数的一半,则按照以下算法计算显示 如果总页数小于或者等于(当前页 + 页面要显示的页数的一半) 则从(当前页号-页面要显示的页数的一半) 显示到 总页数 如果总页数大

java 分页工具类

//13年写的,今天(17)拷贝到博客园 package com.sicdt.sicsign.web.utils; import java.io.Serializable; import java.util.List; /** * @author shizhenwei * * @param <T>用于向前台返还List所用 */ public class PageInfo<T> implements Serializable { private static final long