java分页算法,传入当前pageIndex,pageSise,dataTotal可计算出页面上显示的页码,和是否启动上一页下一页


public class CalculationPage { 

private Boolean showStartPagerDot;
private Boolean showEndPagerDot;
private int pageIndex;
private int pageSise;
private int totalPages;
private int dataTotal;
private List<Long> pageNumbers;
private int prevPage;
private int nextPage;

public CalculationPage(int pageIndex, int pageSise, int dataTotal) {

this.pageIndex = pageIndex;
this.pageSise = pageSise;
this.dataTotal = dataTotal;

double dDataTotal = (double) this.dataTotal;
double dPageSize = (double) this.pageSise;

this.totalPages = (int) Math.ceil((dDataTotal / dPageSize));
this.pageNumbers = new ArrayList<>();
int start = 1;
int pagerCount = 8;
int end = pagerCount;
if (this.pageIndex >= pagerCount) {
start = this.pageIndex - pagerCount / 2;
this.showStartPagerDot = false;
} else {

prevPage = this.pageIndex - 1;
if (prevPage <= 0) {
this.showStartPagerDot = false;
} else {
this.showStartPagerDot = true;
}
}
end = start + pagerCount - 1;
if (end > this.totalPages) {
end = this.totalPages;
if (pageIndex == end) {
this.showEndPagerDot = false;
} else {
this.showEndPagerDot = true;
this.nextPage = pageIndex + 1;
}


} else {
this.nextPage = end + 1;
if (this.nextPage >= this.totalPages) {

this.showEndPagerDot = false;
} else {
this.showEndPagerDot = true;
}

}
for (int i = start; i <= end; i++) {
this.pageNumbers.add((long) i);
}
;


}

public Boolean getShowStartPagerDot() {
return showStartPagerDot;
}

public void setShowStartPagerDot(Boolean showStartPagerDot) {
this.showStartPagerDot = showStartPagerDot;
}

public Boolean getShowEndPagerDot() {
return showEndPagerDot;
}

public void setShowEndPagerDot(Boolean showEndPagerDot) {
this.showEndPagerDot = showEndPagerDot;
}

public int getPageIndex() {
return pageIndex;
}

public void setPageIndex(int pageIndex) {
this.pageIndex = pageIndex;
}

public int getPageSise() {
return pageSise;
}

public void setPageSise(int pageSise) {
this.pageSise = pageSise;
}

public int getTotalPages() {
return totalPages;
}

public void setTotalPages(int totalPages) {
this.totalPages = totalPages;
}

public int getDataTotal() {
return dataTotal;
}

public void setDataTotal(int dataTotal) {
this.dataTotal = dataTotal;
}


public void setPageNumbers(List<Long> pageNumbers) {
this.pageNumbers = pageNumbers;
}

public List<Long> getPageNumbers() {
return pageNumbers;
}

public int getPrevPage() {
return prevPage;
}

public void setPrevPage(int prevPage) {
this.prevPage = prevPage;
}

public int getNextPage() {
return nextPage;
}

public void setNextPage(int nextPage) {
this.nextPage = nextPage;
}
}


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM