import java.util.ArrayList;
import java.util.List;
public class pageUtil {
/**
* select * from table limit(startIndex,pageSize)
* pageIndex;//当前页码
* pageSize;//页面容量 应该>=1
* totalIndexCount;//参数总数(由DB查询)
*
*
* startIndex;//分页结果 开始索引
* totalPageCount;//分页结果 总页数
* pageList;//分页结果 输出存放每一页数据 从list【1】即第一页开始
*/
//select * from table limit(startIndex,pageSize)
private int pageIndex;//当前页
private int pageSize;//页面容量 应该>=1
private int totalIndexCount;//参数总数
private int startIndex;//开始索引
private int totalPageCount;//总页数
private List<Integer> pageList = new ArrayList<Integer>();//存放每一页数据
public pageUtil(int pageIndex, int pageSize, int totalIndexCount) {
this.setPageSize(pageSize);
this.totalIndexCount = totalIndexCount;
this.setTotalPageCount();//先根据用户提供的数据设置总页数
this.setPageIndex(pageIndex);//设置当前页码 1<=当前页<=总页数
this.setStartIndex();//设置开始页码
this.setPageList();//设置分页列表 跳过下标0 即第i页有list[i]项数据
}
@Override
public String toString() {
return "pageUtil{" +
"pageIndex当前页" + pageIndex +
"/ totalPageCount总页数" + totalPageCount +
", pageSize页面容量=" + pageSize +
", totalIndexCount参数总数=" + totalIndexCount +
", startIndex当前页开始索引=" + startIndex +
", pageList=" + pageList +
'}';
}
/*-------------------------------------------set----------------------------------------------------------------------------*/
//参数总数
public void setTotalIndexCount(int totalIndexCount) {
this.totalIndexCount = totalIndexCount;
}
//页面容量
public void setPageSize(int pageSize) {
if (pageSize <= 0) {
this.pageSize = 1;
} else {
this.pageSize = pageSize;
}
}
//设置当前页码
public void setPageIndex(int pageIndex) {
/* 保证页数在一个合理范围*/
if (pageIndex < 1) {
this.pageIndex = 1;
} else if (pageIndex > totalPageCount) {
this.pageIndex = totalPageCount;
} else {
this.pageIndex = pageIndex;
}
}
//设置总页数
public void setTotalPageCount() {
int remain = this.totalIndexCount / this.pageSize;
/*如果页面容量大于参数总数会出bug*/
if (remain == 0 && this.totalIndexCount >= this.pageSize) {
this.totalPageCount = this.totalIndexCount / this.pageSize;
} else {
this.totalPageCount = (this.totalIndexCount / this.pageSize) + 1;
}
}
//开始索引
public void setStartIndex() {
this.startIndex = (this.pageIndex - 1) * pageSize;
}
//存放每一页的数量
public void setPageList() {
this.pageList.add(0);
if (this.totalPageCount == 1) {
this.pageList.add(this.totalIndexCount % this.pageSize);
} else {
for (int i = 1; i < this.totalPageCount; i++) {
this.pageList.add(this.pageSize);
}
int lastPageSize = this.totalIndexCount % this.pageSize;
this.pageList.add(lastPageSize);
}
}
/*-------------------------------------------get----------------------------------------------------------------------------*/
public int getPageIndex() {
return pageIndex;
}
public int getPageSize() {
return pageSize;
}
public int getTotalIndexCount() {
return totalIndexCount;
}
public int getStartIndex() {
return startIndex;
}
public int getTotalPageCount() {
return totalPageCount;
}
public List<Integer> getPageList() {
return pageList;
}
public static void main(String[] args) {
pageUtil pageUtil = new pageUtil(20, 0, 0);
System.out.println(pageUtil.toString());
}
}
@RequestMapping("/userlist")//查询用户列表
public String queryUserlist(String queryname, int queryUserRole, int pageIndex, HttpServletRequest req) {
int currentPageNo = 1;//当前页 默认进入首页为第1页
int totalUserCount = userService.getAllUserCount();//用户总数
//调用分页小公举
pageUtil pageUtil = new pageUtil(pageIndex, constants.pageSize, totalUserCount);
//userService.getUserList(queryname, queryUserRole, StartIndex, pageSize);
List<user> userList = userService.getUserList(queryname, queryUserRole, pageUtil.getStartIndex(), constants.pageSize);
req.getSession().setAttribute("userList", userList);
return "forward:/jsp/userlist.jsp";
}