程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> s2sh-使用S2SH,分頁後,JSP的取值問題

s2sh-使用S2SH,分頁後,JSP的取值問題

編輯:編程綜合問答
使用S2SH,分頁後,JSP的取值問題

service中的實現類
public PageBean queryStuForPage(int pageSize, int page) {
String hql = "select count(*) from Tstudent";
int count = dao.getCount(hql); // 總記錄數
int totalPage = PageBean.countTotalPage(pageSize, count); // 總頁數
int offset = PageBean.countOffset(pageSize, page); // 當前頁開始記錄
int length = pageSize; // 每頁記錄數
int currentPage = PageBean.countCurrentPage(page);
List list = dao.queryStuForPage("from Tstudent", offset,length); // 該分頁的記錄

    // 把分頁信息保存到Bean中
    PageBean pageBean = new PageBean();
    pageBean.setPageSize(pageSize);         //每頁記錄數
    pageBean.setCurrentPage(currentPage);   //當前頁
    pageBean.setAllRow(count);              //總記錄數  
    pageBean.setTotalPage(totalPage);       //總頁數
    pageBean.setList(list);                 //要返回的某頁的記錄列表
    pageBean.init();
    System.out.println(pageBean.getList().get(0).toString());
    return pageBean;
}

返回了一個pageBean ,查詢的頁面數據也在其中

action中
public String queryStuForPage(){
    this.pageBean= ts.queryStuForPage(6, page);
    return "getStuForPageList";
}

方法都沒問題 , 可是就是不知道在JSP中怎麼將PageBean中的list的數據讀取出來,以及下一頁,上一頁等待的數據信息.
下面是我的PageBean類

package utlis;
import java.util.List;
public class PageBean {

private List list;//要返回的某頁的記錄列表

private int allRow;//總記錄數
private int totalPage;//總頁數
private int currentPage;//當前頁
private int pageSize;//每頁記錄數

private boolean isFirstPage;//是否是第一頁
private boolean isLastPage;//是否為最後一頁
private boolean hasPreviousPage;//是否有前一頁
private boolean hasNextPage;//是否有下一頁;
public List getList() {
    return list;
}
public void setList(List list) {
    this.list = list;
}
public int getAllRow() {
    return allRow;
}
public void setAllRow(int allRow) {
    this.allRow = allRow;
}
public int getTotalPage() {
    return totalPage;
}
public void setTotalPage(int totalPage) {
    this.totalPage = totalPage;
}
public int getCurrentPage() {
    return currentPage;
}
public void setCurrentPage(int currentPage) {
    this.currentPage = currentPage;
}
public int getPageSize() {
    return pageSize;
}
public void setPageSize(int pageSize) {
    this.pageSize = pageSize;
}

//初始化分頁信息
public void init(){
    this.isFirstPage=isFirstPage();
    this.isLastPage=isLastPage();
    this.hasPreviousPage=ishasPreviousPage();
    this.hasNextPage=ishasNextPage();
}
private boolean ishasNextPage() {
    return currentPage != totalPage;
}
private boolean ishasPreviousPage() {
    return currentPage !=1;
}
private boolean isLastPage() {
    return currentPage == totalPage;
}
private boolean isFirstPage() {
    return currentPage == 1;
}

/* 
 * 計算總頁數,靜態方法,供外部直接通過類名調用
 * @param pageSize每頁記錄數
 * @param allRow總記錄數
 * @return 總頁數
 */
public static int countTotalPage(final int pageSize, final int allRow) {
    int totalPage = allRow % pageSize == 0 ? allRow / pageSize : allRow / pageSize + 1;
    return totalPage;
}

    /*
* 計算當前頁開始記錄
* @param pageSize每頁記錄數
* @param currentPage當前第幾頁
* @return 當前頁開始記錄號
*/
public static int countOffset(final int pageSize, final int currentPage) {
    final int offset = pageSize * (currentPage - 1);
    return offset;
}

    /*
* 計算當前頁,若為0或者請求的URL中沒有"?page=",則用1代替
* @paramPage 傳入的參數(可能為空,即0,則返回1)
* @return 當前頁
*/
public static int countCurrentPage(int page) {
    final int curPage = (page == 0 ? 1 : page);
    return curPage;
}
}

最佳回答:


使用el表達式c:foreach循環,items取值是${pageBean.list},遍歷這個就是你要的結果

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved