- import java.util.ArrayList;
- import java.util.List;
- /**分页工具类
- * @author user
- *
- */
- public class Pager {
- private static final int DEFAULT_PAGESIZE=10;//默认分页的每页显示的条数
- private static final int DEFAULT_PAGENUM=5;//默显示页码的数量
- private int pagerIndex;//当前的页码
- private int pagerCount;//总页码
- private int pageSize;//每页显示的条数
- private int recordCount;//总记录数
- private int offsetNum;//显示页码数量的偏移量
- private int pageNum;//显示页码的数量
- public Pager(){}
- /**构造函数,初始化分页的信息,自动修正
- * @param pageIndex 当前的页码
- * @param recordCount 总记录数
- * @param pageSize 分页每页显示的条数
- */
- public Pager(int pageIndex,int recordCount,int pageSize){
- this.pagerIndex=pageIndex;
- this.recordCount=recordCount;
- this.pageSize=pageSize<1?Pager.DEFAULT_PAGESIZE:pageSize;
- this.pagerCount=(this.recordCount-1)/pageSize+1;
- if(this.pagerIndex<1) this.pagerIndex=1;
- if(this.pagerIndex>pagerCount) this.pagerIndex=this.pagerCount;
- this.setPageNum(Pager.DEFAULT_PAGENUM);
- }
- /**构造函数,初始化分页的信息,自动修正
- * @param pageIndex 当前的页码
- * @param recordCount 总记录数
- * @param pageSize 分页每页显示的条数
- * @param pagerNum 每页显示的条数
- */
- public Pager(int pageIndex,int recordCount,int pageSize,int pagerNum){
- this(pageIndex,recordCount,pageSize);
- this.setPageNum(pagerNum);
- }
- /**设置分页的信息,自动修正
- * @param pageIndex 当前的页码
- * @param recordCount 总记录数
- * @param pageSize 分页每页显示的条数
- */
- public void setPagerInfo(int pageIndex,int recordCount,int pageSize){
- this.pagerIndex=pageIndex;
- this.recordCount=recordCount;
- this.pageSize=pageSize<1?Pager.DEFAULT_PAGESIZE:pageSize;
- this.pagerCount=(this.recordCount-1)/pageSize+1;
- if(this.pagerIndex<1) this.pagerIndex=1;
- if(this.pagerIndex>pagerCount) this.pagerIndex=this.pagerCount;
- }
- /**得到上一页
- * @return
- */
- public int getProvPageIndex(){
- return (this.pagerIndex-1)<1?1:this.pagerIndex-1;
- }
- /**得到下一页
- * @return
- */
- public int getNextPageIndex(){
- return (this.pagerIndex+1)>this.pagerCount?pagerCount:this.pagerIndex+1;
- }
- public int getPagerIndex() {
- return pagerIndex;
- }
- public int getPagerCount() {
- return pagerCount;
- }
- public int getPageSize() {
- return pageSize;
- }
- public int getRecordCount() {
- return recordCount;
- }
- /**设置显示页码的数量
- * @param pageNum 显示页码的数量
- */
- private void setPageNum(int pageNum){
- pageNum=pageNum%2==0?pageNum++:pageNum;//页数目录的数量只能为奇数
- pageNum=pageNum<1?Pager.DEFAULT_PAGENUM:pageNum;//如果显示的页码数量小于1,则设置为默认值
- pageNum=pageNum>this.pagerCount?(this.pagerCount%2==0?this.pagerCount-1:this.pagerCount):pageNum;//如果显示页码的数量大于总页数,则邓等于页码德总页数
- this.offsetNum=(pageNum-1)/2;
- this.pageNum=pageNum;
- }
- /**分页目录显示样式
- * @return
- */
- public List<Integer> getShowPageStyle(){
- List<Integer> list=new ArrayList<Integer>();
- //当分页的总数量小于等于显示分页的数量
- if(this.pagerCount<=this.pageNum){
- for (int i = 1; i <= this.pagerCount; i++){
- list.add(i);
- }
- return list;
- }
- //显示分页数量的偏移量大于当前的页码
- if(this.offsetNum>=this.pagerIndex){
- for (int i = 1; i <= this.pageNum; i++) {
- list.add(i);
- }
- return list;
- }
- //当前的页码在最后几页且在偏移量范围之内
- if(this.pagerIndex>=this.pagerCount-this.offsetNum){
- for (int i = pagerCount-this.pageNum+1; i <= this.pagerCount; i++) {
- list.add(i);
- }
- return list;
- }
- //普通情况
- for (int i = this.pagerIndex-offsetNum; i <=this.pagerIndex+this.offsetNum; i++) {
- list.add(i);
- }
- return list;
- }
- public static void main(String[] args) {
- Pager pager=new Pager(5,100,10,5);
- List<Integer> list=pager.getShowPageStyle();
- for (Integer integer : list) {
- System.out.println(integer);
- System.out.println("================");
- }
- }
- }
Java 开发工具类Pager
最新推荐文章于 2021-03-10 05:16:50 发布