📄 page.java
字号:
package com.work.page;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/**
* Represents a page of results (for page-by-page iteration).
*/
public class Page implements Serializable {
public static final Page EMPTY_PAGE = new Page(Collections.EMPTY_LIST, 0,
0, 0);
public int ItemCount = 10;
List objects;
int start;
// 总记录数
public int containingListSize;
/**
* 初始化一个page对象
*
* @param l
* List 要放入list中的对象列表。
* @param s
* int 开始记录号
* @param cls
* int page对象对应的数据表中的所有的记录条数。
* @param PageSize
* int 每个page对象中最大的记录条数。
*/
public Page(List l, int s, int cls, int PageSize) {
objects = new ArrayList(l);
start = s;
containingListSize = cls;
if (PageSize > 0)
ItemCount = PageSize;
}
/**
* 返回page对象中包含的数据的列表。
*
* @return List
*/
public List getList() {
return objects;
}
/**
* 判断其是否有下一页。
*
* @return boolean 如果有下一页就返回true,否则返回false。
*/
public boolean hasNextPage() {
if (objects.size() > 0)
return ((start + objects.size() - 1) < containingListSize);
else
return false;
}
/**
* 判断当前的page对象是否有上一页
*
* @return boolean
*/
public boolean hasPreviousPage() {
// return start > 0;
return getCurPageNum() > 1 ? true : false;
}
/**
* 返回下一页的开始记录号。
*
* @return int
*/
public int getStartOfNextPage() {
return start + objects.size();
}
/**
* 返回上一页的开始记录号。
*
* @return int
*/
public int getStartOfPreviousPage() {
// return Math.max(start-objects.size(), 0);
return Math.max(start - ItemCount, 0);
}
/**
* 返回当前的页数,如果不够一页当作一页返回。
*
* @return int
*/
public int getPageCount() {
int ret = 0;
if (ItemCount > 0) {
if (containingListSize % ItemCount == 0) {
ret = containingListSize / ItemCount;
} else {
ret = containingListSize / ItemCount + 1;
}
}
return ret;
}
/**
* 返回当前page对象的页码。
*
* @return int
*/
public int getCurPageNum() {
int ret = 0;
if (ItemCount > 0) {
if (ItemCount == 1)
ret = start / ItemCount;
else
ret = start / ItemCount + 1;
}
return ret;
}
/**
* 返回page对象中本页的记录条数。
*
* @return int
*/
public int getSize() {
return objects.size();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -