PageBean类作为分页插件,感觉是可以共用的。
//分页代码
public class PageBean implements Serializable {
private int curPage; //当前页
private int pageCount; //总页数
private int rowsCount; //总行数
private int pageSize = 10; //每页多少行
public PageBean(int rows) {
this.setRowsCount(rows);
if (this.rowsCount % this.pageSize == 0) {
this.pageCount = this.rowsCount / this.pageSize;
} else if (rows < this.pageSize) {
this.pageCount = 1;
} else {
this.pageCount = this.rowsCount / this.pageSize + 1;
}
}
public int getCurPage() {
return curPage;
}
public void setCurPage(int curPage) {
this.curPage = curPage;
}
public int getPageCount() {
return pageCount;
}
public void setPageCount(int pageCount) {
this.pageCount = pageCount;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public int getRowsCount() {
return rowsCount;
}
public void setRowsCount(int rowsCount) {
this.rowsCount = rowsCount;
}
}
而我们的controller层在调用的时候,可以以下这么写,只是一个小测试,估计的可根据自己的逻辑进行代码修改就好.
controller层代码如下:
@GetMapping("/list")
public List getMFnnclChangeList(Integer page, Integer pagesize) {
//调用一览查询接口
List<MFnnclChange> mFnnclChangeList = mFnnclChangeService.findAll();
PageBean pageBean = new PageBean(mFnnclChangeList.size());
//对于未传入的字段值,赋值默认的
if (page == null) {
page = 1;
}
if (pagesize == null) {
pagesize = pageBean.getPageSize();
}
pageBean.setCurPage(page); //页
//formIndex 代表开始的索引,toIndex 代表结束的
int formIndex = (page - 1) * pagesize; //获得分页数据在list集合中的索引 即数据开始位置
int toIndex = page * pagesize; //即结束的位置
if (toIndex > mFnnclChangeList.size()) {
toIndex = mFnnclChangeList.size();
}
if (formIndex > toIndex) {
formIndex = 0;
pageBean.setCurPage(1);
}
//list中subList的方法代表取得下标从formIndex开始,到toIndex结束的数据,但是不包含后者
//举个例子 subList.(0,3) 代表的是下标从0开始,到3结束,只取到下标为2的数据。
List courseList = mFnnclChangeList.subList(formIndex, toIndex);
return courseList;
}
这一步就很简单了,调用PageBean类中的变量,在最后调用List集合中自带的subList方法,也能完成分页操作。