分頁Model ide
public class PagingModel {
private Long curPage =1l;
private Long totalCount;
private Long totalPage;
private Long perPage = 20l;
private Long startRec;
private Long endRec;
private Long startPage;
private Long endPage;
private Long perStage = 5l;
public Long getCurPage() {
return curPage;
}
public void setCurPage(Long curPage) {
this.curPage = curPage;
}
public Long getTotalCount() {
if(this.totalCount == null){
this.totalCount = this.curPage * this.perPage;
}
return totalCount;
}
this
public void setTotalCount(Long totalCount) {
this.totalCount = totalCount;
}
public Long getTotalPage() {
return (long) Math.ceil((double)totalCount / (double)perPage);
}
public Long getPerPage() {
return perPage;
}
public Long getStartRec() {
return (this.curPage - 1) * this.perPage + 1;
}
public Long getEndRec() {
return Math.min(this.curPage * this.perPage, this.getTotalCount());
}
public Long getStartPage() {
return ((long) Math.ceil((double)this.curPage / (double)this.perStage)-1)
* this.perStage+1;
}
public Long getEndPage() {
return Math.min(((long) Math.ceil((double)this.curPage / (double)this.perStage)) * this.perStage, this.getTotalPage());
}
public Long getPerStage() {
return perStage;
}
@Override
public String toString() {
return "PagingObj [getCurPage()=" + getCurPage() + ", getTotalCount()="
+ getTotalCount() + ", getTotalPage()=" + getTotalPage()
+ ", getPerPage()=" + getPerPage() + ", getStartRec()="
+ getStartRec() + ", getEndRec()=" + getEndRec()
+ ", getStartPage()=" + getStartPage() + ", getEndPage()="
+ getEndPage() + ", getPerStage()=" + getPerStage() + "]";
}
} spa
前臺頁面分頁標籤: debug
<div id="paging-panel">
<table>
<tr>
<td>
Showing ${pagingObj.totalCount==0?'0':pagingObj.startRec } to ${pagingObj.endRec } of ${pagingObj.totalCount } entries
</td>
<td>
<button ${pagingObj.curPage==1?'disabled':'' } onclick="pagingAction(${1})">First</button>
<button ${pagingObj.curPage==1?'disabled':'' } onclick="pagingAction(${pagingObj.curPage-1})">Previous</button>
<c:if test="${pagingObj.startPage>pagingObj.perStage }">
<button onclick="pagingAction(${pagingObj.startPage-1})">...</button>
</c:if>
<c:forEach var="pageNum" begin="${pagingObj.startPage }" end="${pagingObj.endPage }" step="1">
<button style="background-color:${pagingObj.curPage==pageNum?'#777;':'' }" ${pagingObj.curPage==pageNum?'disabled':'' } onclick="pagingAction(${pageNum})">${pageNum }</button>
</c:forEach>
<c:if test="${pagingObj.totalPage>pagingObj.endPage }">
<button onclick="pagingAction(${pagingObj.endPage+1})">...</button>
</c:if>
<button ${(pagingObj.curPage==pagingObj.totalPage || pagingObj.totalPage==0)?'disabled':'' } onclick="pagingAction(${pagingObj.curPage+1})">Next</button>
<button ${(pagingObj.curPage==pagingObj.totalPage || pagingObj.totalPage==0)?'disabled':'' } onclick="pagingAction(${pagingObj.totalPage})">Last</button>
</td>
</tr>
</table>
</div>
orm
function pagingAction(forwardPage){
document.checkertForm.action="queryQueue.do?curPage="+forwardPage;
document.checkertForm.submit();
}
get
後臺Controller: it
//pagination start io
String curPageStr = request.getParameter("curPage"); table
if(curPageStr==null){
curPageStr = (String) request.getAttribute("curPage");
}
PagingModel pagingObj = new PagingModel(); ast
//獲得總記錄條數
Long totalCount = this.exceptionQueueService.getTotalNum(userMap);
this.logger.debug("the size:"+totalCount);
pagingObj.setTotalCount(totalCount);
if(curPageStr != null){
Long curPage = Long.parseLong(curPageStr);
pagingObj.setCurPage(curPage);
}else{
pagingObj.setCurPage(1L);
}
request.setAttribute("pagingObj", pagingObj);
Long startRec = pagingObj.getStartRec();
Long endRec = pagingObj.getEndRec();
//把起始條數傳到後臺檢索數據.
userMap.put("START", startRec.toString());
userMap.put("END", endRec.toString());
//pagination end