Java(基於Struts2) 分頁完成代碼。本站提示廣大學習愛好者:(Java(基於Struts2) 分頁完成代碼)文章只能為提供參考,不一定能成為您想要的結果。以下是Java(基於Struts2) 分頁完成代碼正文
分頁完成的根本進程是如許的:
1. 設置本身的分頁器的根本參數(可以從設置裝備擺設文件中讀取)
■每頁顯示的記載條數
■每次最多顯示若干頁
2. 編寫設置分頁器其他參數的函數
重要參數有以下幾個:
總記載條數
總頁數
以後頁號:如今顯示的頁數
每頁顯示的記載條數
以後頁開端行(第一行是0行)
第一頁頁號
最初頁頁號
下一頁頁號
上一頁頁號
畫面上顯示的肇端頁號
畫面上顯示的停止頁號
參數根本完成道理:設置以上各個參數,現實上只須要三個參數便可以對一切的其他變量停止設置,即總記載條數,每頁顯示記載數,每次最多顯示若干頁。
分頁器的代碼完成以下(省略get,set函數):
Page.java
{
this.onePageSize = Integer.valueOf(PageResource.get(PageResource.ONE_PAGE_SIZE));
this.displayPageCount = Integer.valueOf(PageResource.get(PageResource.DISPLAY_PAGE_COUNT)) - 1;
}
/** 頁號式導航, 最多顯示頁號數目為displayPageCount+1 */
private int displayPageCount;
/** 每頁顯示的記載條數 */
private int onePageSize;
/** 總記載條數 */
private int totalRecord;
/** 總頁數 */
private int totalPage;
/** 以後頁號 */
private int currentPageNum = 1;
/** 以後頁開端行(第一行是0行) */
private int currentStartRow;
/** 第一頁頁號 */
private int firstPageNum = 1;
/** 最初頁頁號 */
private int lastPageNum;
/** 下一頁頁號 */
private int nextPageNum;
/** 上一頁頁號 */
private int prevPageNum;
/** 頁號式導航 肇端頁號 */
private int startPageNum;
/** 頁號式導航 停止頁號 */
private int endPageNum;
/**
*
* @param onePageSize
* @param currentPageNum
* @param totalRecord
*/
public Page(int totalRecord) {
this.totalRecord = totalRecord;
this.setPageInfo();
}
public Page() {
}
public void setPageInfo() {
this.totalPage = (totalRecord + onePageSize - 1) / onePageSize;
this.currentPageNum = Math.max(1, Math.min(currentPageNum, totalPage));
this.lastPageNum = this.totalPage;
this.nextPageNum = Math.min(this.totalPage, this.currentPageNum + 1);
this.prevPageNum = Math.max(1, this.currentPageNum - 1);
// 分頁掌握信息
this.currentStartRow = (this.currentPageNum - 1) * onePageSize;
startPageNum = Math.max(this.currentPageNum - displayPageCount / 2,
firstPageNum);
endPageNum = Math.min(startPageNum + displayPageCount, lastPageNum);
if (endPageNum - startPageNum < displayPageCount) {
startPageNum = Math.max(endPageNum - displayPageCount, 1);
}
}
3. 編寫前端代碼(以Struts2為例)
當在前台點擊各個跳轉頁面的鏈接時,只須要將要跳轉到的頁號和總頁數傳給後台,後台會從新更新分頁器,進而完成頁碼的跳轉。
<div>
<div>
總頁數:
<s:property value="#request.p.totalPage" />
總記載數:
<s:property value="#request.p.totalRecord" />
</div>
<s:url id="firstURL" action="PageAction!toPage">
<s:param name="p.currentPageNum">
<s:property value="#request.p.firstPageNum" />
</s:param>
<s:param name="p.totalRecord">
<s:property value="#request.p.totalRecord" />
</s:param>
</s:url>
<s:a href="%{firstURL}">首頁</s:a>
<s:url id="prev" action="PageAction!toPage">
<s:param name="p.currentPageNum">
<s:property value="#request.p.prevPageNum" />
</s:param>
<s:param name="p.totalRecord">
<s:property value="#request.p.totalRecord" />
</s:param>
</s:url>
<s:a href="%{prev}">上一頁</s:a>
<s:bean name="org.apache.struts2.util.Counter" id="counter">
<s:param name="first" value="p.startPageNum" />
<s:param name="last" value="p.endPageNum" />
<s:iterator var="pageNum">
<s:if test="p.currentPageNum==#pageNum">
<s:property />
</s:if>
<s:else>
<s:url id="page" action="PageAction!toPage">
<s:param name="p.currentPageNum">
<s:property value="#pageNum" />
</s:param>
<s:param name="p.totalRecord">
<s:property value="#request.p.totalRecord" />
</s:param>
</s:url>
<s:a href="%{page}"><s:property /></s:a>
</s:else>
</s:iterator>
</s:bean>
<s:url id="next" action="PageAction!toPage">
<s:param name="p.currentPageNum">
<s:property value="#request.p.nextPageNum" />
</s:param>
<s:param name="p.totalRecord">
<s:property value="#request.p.totalRecord" />
</s:param>
</s:url>
<s:a href="%{next}">下一頁</s:a>
<s:url id="lastURL" action="PageAction!toPage">
<s:param name="p.currentPageNum">
<s:property value="#request.p.lastPageNum" />
</s:param>
<s:param name="p.totalRecord">
<s:property value="#request.p.totalRecord" />
</s:param>
</s:url>
<s:a href="%{lastURL}">尾頁</s:a>
</div>