分页点击页面索引始终只加载第一页

时间:2016-01-14 08:18:33

标签: java hibernate servlets java-ee pagination

我正在尝试使用hibernate.tut对我的servlet中的表的行进行分页。一旦我点击了页面的欲望索引,它总是只给我表的第一组行。

我的servlet代码:

    int pageIndex = 0;
    int totalNumberOfRecords = 0;
    int numberOfRecordsPerPage = 5;

    String sPageIndex = request.getParameter("pageIndex");

    if (sPageIndex == null) {
        pageIndex = 1;
    } else {
        pageIndex = Integer.parseInt(sPageIndex);
    }
    int s = (pageIndex * numberOfRecordsPerPage) - numberOfRecordsPerPage;


List<ProductHasSize> phs = ses.createCriteria(ProductHasSize.class)
                    .setFirstResult(s)
                    .setMaxResults(numberOfRecordsPerPage)
                    .list();

            for (ProductHasSize pro : phs) {... some html content here...}
            List<ProductHasSize> phs1 = ses.createCriteria(ProductHasSize.class)
                .setProjection(Projections.rowCount()).list();
        Iterator i = phs1.iterator();
        if (i.hasNext()) {
            Object o = i.next();
            totalNumberOfRecords = Integer.parseInt(o.toString());
        }

        int noOfPages = totalNumberOfRecords / numberOfRecordsPerPage;
        if (totalNumberOfRecords > (noOfPages * numberOfRecordsPerPage)) {
            noOfPages = noOfPages + 1;
        }
        for (int j = 1; j <= noOfPages; j++) {
            String myurl = "products.jsp?pageIndex=" + j;
            String active = j == pageIndex ? "active" : "";
            pagination = pagination + "<li class='" + active + "'><a href=" + myurl + ">" + j + "</a></li>";

        }

提前致谢。

1 个答案:

答案 0 :(得分:1)

尝试替换:

 if (i.hasNext()) {

使用:

 while(i.hasNext()) {

并像这样编写while循环:

  while(i.hasNext()) {
        Object o = i.next();
        totalNumberOfRecords += Integer.parseInt(o.toString());

 int noOfPages = totalNumberOfRecords / numberOfRecordsPerPage;
    if (totalNumberOfRecords > (noOfPages * numberOfRecordsPerPage)) {
        noOfPages = noOfPages + 1;
    }
  }