众所周知,web项目基本上都会用到动态分页功能,下面给大家整理写一个完整的PageBean工具类,大家把完整代码拷到自己项目里就可以直接用,本实例也适用于APP项目的翻页,废话不多说,直接上代码
import java.util.List;
/**
* 作者:guobinhui <br>
* 创建时间:2018年5月21日 <br>
* 描述:动态分页Bean
*/
public class PageBean <T>{
private List<T> pageData;
private Integer currentPage = Integer.valueOf(1);
private Integer pageSize = Integer.valueOf(10);
private Integer totalCount;
public int getPageCount(){
if (this.totalCount.intValue() % this.pageSize.intValue() == 0) {
return this.totalCount.intValue() / this.pageSize.intValue();
}
return this.totalCount.intValue() / this.pageSize.intValue() + 1;
}
public PageBean(List<T> pageData, Integer totalCount) {
this.pageData = pageData;
this.totalCount = totalCount;
}
public PageBean() {}
public boolean isFirst()
{
return (this.currentPage.intValue() == 1) || (this.totalCount.intValue() == 0);
}
public boolean isLast() {
return (this.totalCount.intValue() == 0) || (this.currentPage.intValue() >= getPageCount());
}
public boolean isHasNext()
{
return this.currentPage.intValue() < getPageCount();
}
public boolean isHasPrev() {
return this.currentPage.intValue() > 1;
}
public Integer getNextPage()
{
if (this.currentPage.intValue() >= getPageCount()) {
return Integer.valueOf(getPageCount());
}
return Integer.valueOf(this.currentPage.intValue() + 1);
}
public Integer getPrevPage() {
if (this.currentPage.intValue() <= 1) {
return Integer.valueOf(1);
}
return Integer.valueOf(this.currentPage.intValue() - 1);
}
public List<T> getPageData() {
return this.pageData;
}
public void setPageData(List<T> pageData) {
this.pageData = pageData;
}
public Integer getCurrentPage() {
return this.currentPage;
}
public void setCurrentPage(Integer currentPage) {
this.currentPage = currentPage;
}
public Integer getPageSize() {
return this.pageSize;
}
public void setPageSize(Integer pageSize) {
this.pageSize = pageSize;
}
public Integer getTotalCount() {
return this.totalCount;
}
public void setTotalCount(Integer totalCount) {
this.totalCount = totalCount;
}
}
项目service中,只需要根据参数page和pageSize这2个参数,就可以查出符合条件的记录(List<T>),和总数totalCount,把这2个参数传入PageBean这个构造器中即可返回分页的所有数据,代码示例如下:
最终返回的数据结构如下:
{ "data":{
"first": true,
"hasNext": false,
"hasPrev": false,
"last": true,
"nextPage": 1,
"currentPage": 1,
"pageCount": 1,
"pageSize": 20,
"prevPage": 1,
"totalCount ": 3,
"pageData":[{
"voipId ":"2142343254353456436",
"voipStateDate ":"2018-04-23 14:02:00",
"objName":"guoxiansheng",
"voipStatus":1
}]
},
"errorCode":10000,
"erorInfo":"创建成功"
}
分享转发是一种美德,也是对笔者最大的支持。