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 pageNum;
/**每页的数量*/
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.pageNum = 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.pageNum = 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 = pageNum - navigatePages / 2;
int endNum = pageNum + 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 (pageNum > 1) {
prePage = pageNum - 1;
}
if (pageNum < pages) {
nextPage = pageNum + 1;
}
}
}
/**
* 判定页面边界
*/
private void judgePageBoudary() {
isFirstPage = pageNum == 1;
isLastPage = pageNum == pages;
hasPreviousPage = pageNum > 1;
hasNextPage = pageNum < pages;
}
public int getPageNum() {
return pageNum;
}
public void setPageNum(int pageNum) {
this.pageNum = pageNum;
}
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 getN
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
demo-ssm(请下载这个).zip (86个子文件)
demo-ssm
.project 1KB
.springBeans 529B
src
test
resources
java
main
webapp
WEB-INF
lib
web.xml 2KB
index.jsp 829B
META-INF
MANIFEST.MF 39B
db_script
demo.sql 3KB
resources
config.properties 366B
log4j.properties 906B
mybatis
mapper
IMemberOrdersMapper.xml 5KB
UserMapper.xml 3KB
mybatis-config.xml 1KB
spring
spring-mybatis.xml 4KB
spring-mvc.xml 1KB
spring.xml 1KB
java
com
xe
demo
common
pojo
PageAjax.java 10KB
AjaxResult.java 1KB
service
OrderService.java 204B
BaseService.java 3KB
UserService.java 182B
model
User.java 3KB
IMemberOrders.java 3KB
controller
OrderController.java 4KB
UserController.java 4KB
mapper
UserMapper.java 126B
IMemberOrdersMapper.java 149B
BaseMapper.java 2KB
target
ssm.war 2MB
maven-status
maven-compiler-plugin
compile
default-compile
createdFiles.lst 257B
inputFiles.lst 523B
generated-sources
annotations
m2e-jee
web-resources
META-INF
MANIFEST.MF 114B
maven
com.xe.demo
demo-ssm
pom.properties 218B
pom.xml 5KB
classes
config.properties 366B
com
xe
demo
common
pojo
PageAjax.class 8KB
AjaxResult.class 2KB
service
UserService.class 478B
BaseService.class 3KB
OrderService.class 490B
model
User.class 2KB
IMemberOrders.class 2KB
controller
UserController.class 5KB
OrderController.class 5KB
mapper
BaseMapper.class 1KB
UserMapper.class 255B
IMemberOrdersMapper.class 282B
log4j.properties 906B
mybatis
mapper
IMemberOrdersMapper.xml 5KB
UserMapper.xml 3KB
mybatis-config.xml 1KB
spring
spring-mybatis.xml 4KB
spring-mvc.xml 1KB
spring.xml 1KB
demo-ssm-0.0.1-SNAPSHOT
WEB-INF
classes
config.properties 366B
com
xe
demo
common
AjaxResult.class 2KB
service
UserService.class 2KB
BaseService.class 3KB
model
User.class 2KB
controller
UserController.class 3KB
mapper
BaseMapper.class 1KB
UserMapper.class 157B
spring-mvc.xml 1KB
log4j.properties 906B
mybatis
mapper
UserMapper.xml 2KB
mybatis-config.xml 882B
spring.xml 5KB
lib
spring-core-4.2.5.RELEASE.jar 1.03MB
spring-context-support-4.2.5.RELEASE.jar 173KB
spring-expression-4.2.5.RELEASE.jar 257KB
commons-logging-1.2.jar 60KB
spring-beans-4.2.5.RELEASE.jar 714KB
web.xml 2KB
index.jsp 829B
META-INF
MANIFEST.MF 39B
maven-archiver
pom.properties 118B
test-classes
.settings
org.eclipse.wst.jsdt.ui.superType.container 49B
org.eclipse.wst.common.project.facet.core.xml 344B
org.eclipse.m2e.core.prefs 90B
org.eclipse.jdt.core.prefs 430B
org.eclipse.wst.validation.prefs 50B
org.eclipse.wst.jsdt.ui.superType.name 6B
org.eclipse.wst.common.project.facet.core.prefs.xml 161B
org.eclipse.core.resources.prefs 298B
org.eclipse.wst.common.component 660B
.jsdtscope 564B
pom.xml 5KB
.classpath 1KB
共 86 条
- 1
逍遥遥浪子
- 粉丝: 33
- 资源: 9
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页