首页>代码>spring mvc+mybatis+mysql+maven+bootstrap-table整合实现增删查改简单实例>/demo-bstable/src/main/java/com/xe/demo/common/pojo/PageAjax.java
package com.xe.demo.common.pojo;
import java.io.Serializable;
import java.util.Collection;
import java.util.List;
import com.github.pagehelper.Page;
/**
* 封装分页请求结果
* @author CZH
*/
@SuppressWarnings({"rawtypes", "unchecked"})
public class PageAjax<T> implements Serializable {
private static final long serialVersionUID = 1L;
/**当前页*/
private int pageNo;
/**每页的数量*/
private int pageSize;
/**当前页的数量*/
private int size;
/**排序*/
private String orderBy;
/**当前页面第一个元素在数据库中的行号*/
private int startRow;
/**当前页面最后一个元素在数据库中的行号*/
private int endRow;
/**总记录数*/
private long total;
/**总页数*/
private int pages;
/**结果集*/
private List<T> rows;
/**第一页*/
private int firstPage;
/**前一页*/
private int prePage;
/**下一页*/
private int nextPage;
/**最后一页*/
private int lastPage;
/**是否为第一页*/
private boolean isFirstPage = false;
/**是否为最后一页*/
private boolean isLastPage = false;
/**是否有前一页*/
private boolean hasPreviousPage = false;
/**是否有下一页*/
private boolean hasNextPage = false;
/**导航页码数*/
private int navigatePages;
/**所有导航页号*/
private int[] navigatepageNums;
public PageAjax() {
}
/**
* 包装Page对象
* @param list
*/
public PageAjax(List<T> list) {
this(list, 8);
}
/**
* 包装Page对象
* @param list page结果
* @param navigatePages 页码数量
*/
public PageAjax(List<T> list, int navigatePages) {
if (list instanceof Page) {
Page page = (Page) list;
this.pageNo = page.getPageNum();
this.pageSize = page.getPageSize();
// this.orderBy = page.getOrderBy();
this.pages = page.getPages();
this.rows = page;
this.size = page.size();
this.total = page.getTotal();
//由于结果是>startRow的,所以实际的需要+1
if (this.size == 0) {
this.startRow = 0;
this.endRow = 0;
} else {
this.startRow = page.getStartRow() + 1;
//计算实际的endRow(最后一页的时候特殊)
this.endRow = this.startRow - 1 + this.size;
}
} else if (list instanceof Collection) {
this.pageNo = 1;
this.pageSize = list.size();
this.pages = 1;
this.rows = list;
this.size = list.size();
this.total = list.size();
this.startRow = 0;
this.endRow = list.size() > 0 ? list.size() - 1 : 0;
}
if (list instanceof Collection) {
this.navigatePages = navigatePages;
//计算导航页
calcNavigatepageNums();
//计算前后页,第一页,最后一页
calcPage();
//判断页面边界
judgePageBoudary();
}
}
/**
* 计算导航页
*/
private void calcNavigatepageNums() {
//当总页数小于或等于导航页码数时
if (pages <= navigatePages) {
navigatepageNums = new int[pages];
for (int i = 0; i < pages; i++) {
navigatepageNums[i] = i + 1;
}
} else { //当总页数大于导航页码数时
navigatepageNums = new int[navigatePages];
int startNum = pageNo - navigatePages / 2;
int endNum = pageNo + navigatePages / 2;
if (startNum < 1) {
startNum = 1;
//(最前navigatePages页
for (int i = 0; i < navigatePages; i++) {
navigatepageNums[i] = startNum++;
}
} else if (endNum > pages) {
endNum = pages;
//最后navigatePages页
for (int i = navigatePages - 1; i >= 0; i--) {
navigatepageNums[i] = endNum--;
}
} else {
//所有中间页
for (int i = 0; i < navigatePages; i++) {
navigatepageNums[i] = startNum++;
}
}
}
}
/**
* 计算前后页,第一页,最后一页
*/
private void calcPage() {
if (navigatepageNums != null && navigatepageNums.length > 0) {
firstPage = navigatepageNums[0];
lastPage = navigatepageNums[navigatepageNums.length - 1];
if (pageNo > 1) {
prePage = pageNo - 1;
}
if (pageNo < pages) {
nextPage = pageNo + 1;
}
}
}
/**
* 判定页面边界
*/
private void judgePageBoudary() {
isFirstPage = pageNo == 1;
isLastPage = pageNo == pages;
hasPreviousPage = pageNo > 1;
hasNextPage = pageNo < pages;
}
public int getPageNo() {
return pageNo;
}
public void setPageNo(int pageNo) {
this.pageNo = pageNo;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public int getSize() {
return size;
}
public void setSize(int size) {
this.size = size;
}
public String getOrderBy() {
return orderBy;
}
public void setOrderBy(String orderBy) {
this.orderBy = orderBy;
}
public int getStartRow() {
return startRow;
}
public void setStartRow(int startRow) {
this.startRow = startRow;
}
public int getEndRow() {
return endRow;
}
public void setEndRow(int endRow) {
this.endRow = endRow;
}
public long getTotal() {
return total;
}
public void setTotal(long total) {
this.total = total;
}
public int getPages() {
return pages;
}
public void setPages(int pages) {
this.pages = pages;
}
public List<T> getRows() {
return rows;
}
public void setRows(List<T> rows) {
this.rows = rows;
}
public int getFirstPage() {
return firstPage;
}
public void setFirstPage(int firstPage) {
this.firstPage = firstPage;
}
public int getPrePage() {
return prePage;
}
public void setPrePage(int prePage) {
this.prePage = prePage;
}
public int getNextPage() {
return nextPage;
}
public void setNextPage(int nextPage) {
this.nextPage = nextPage;
}
public int getLastPage() {
return lastPage;
}
public void setLastPage(int lastPage) {
this.lastPage = lastPage;
}
public boolean isIsFirstPage() {
return isFirstPage;
}
public void setIsFirstPage(boolean isFirstPage) {
this.isFirstPage = isFirstPage;
}
public boolean isIsLastPage() {
return isLastPage;
}
public void setIsLastPage(boolean isLastPage) {
this.isLastPage = isLastPage;
}
public boolean isHasPreviousPage() {
return hasPreviousPage;
}
public void setHasPreviousPage(boolean hasPreviousPage) {
this.hasPreviousPage = hasPreviousPage;
}
public boolean isHasNextPage() {
return hasNextPage;
}
public void setHasNextPage(boolean hasNextPage) {
this.hasNextPage = hasNextPage;
}
public int getNavigatePages() {
return navigatePages;
}
public void setNavigatePages(int navigatePages) {
this.navigatePages = navigatePages;
}
public int[] getNavigatepageNums() {
return navigatepageNums;
}
public void setNavigatepageNums(int[] navigatepageNums) {
this.navigatepageNums = navigatepageNums;
}
@Override
public String toString() {
final StringBuffer sb = new StringBuffer("PageAjax{");
sb.append(" pageNo=").append(pageNo);
sb.append(", pageSize=").append(pageSize);
sb.append(", size=").append(size);
sb.append(", startRow=").append(startRow);
sb.append(", endRow=").append(endRow);
sb.append(", total=").append(total);
sb.append(", pages=").append(pages);
sb.append(", rows=").append(rows);
sb.append(", firstPage=").append(firstPage);
sb.append(", prePage=").append(prePage);
sb.append(", nextPage=").append(nextPage);
sb.append(", lastPage=").append(lastPage);
sb.append(", isFirstPage=").append(isFirstPage);
sb.append(", isLastPage=").append(isLastPage);
sb.append(", hasPreviousPage=").append(hasPreviousPage);
sb.append(", hasNextPage=").append(hasNextPage);
sb.append(", navigatePages=").append(navigatePages);
sb.append(", navigatepageNums=");
if (navigatepageNums == null) sb.append("null");
else {
sb.append('[');
for (int i = 0; i < navigatepageNums.length; ++i)
sb.append(i == 0 ? "" : ", ").append(navigatepageNums[i]);
sb.append(']');
}
sb.append('}');
return sb.toString();
}
}
最近下载更多

最近浏览