NIUBI 2015-08-09 14:56 采纳率: 100%
浏览 1549
已采纳

使用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;
}
}
  • 写回答

4条回答 默认 最新

  • 猜个 2015-08-10 03:29
    关注

    使用el表达式c:foreach循环,items取值是${pageBean.list},遍历这个就是你要的结果

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 lammps拉伸应力应变曲线分析
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
  • ¥30 python代码,帮调试,帮帮忙吧
  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建