2016-01-14 2 views
1

Я пытаюсь разбивать строки таблицы внутри моего сервлета, используя hibernate. Но как только я нажимаю на индекс желания страницы, он всегда дает мне только первый набор строк таблицы.Pagination click on page index загрузить только первую страницу всегда

Мой код сервлета:

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>"; 

     } 

Спасибо заранее.

+0

Чтобы отладить этот код, вы должны положить журналы на каждом и убедитесь, что вы получите желаемый результат на каждом этапе. Потому что ошибка может быть где угодно в коде. – Thanga

ответ

1

Попробуйте заменить:

if (i.hasNext()) { 

С:

while(i.hasNext()) { 

И писать время цикла, как это:

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

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

Последний '}' для чего? И изменение 'if' на' while' не решило проблему. –

+0

} является окончанием while – Abdelhak

+1

Тогда как насчет 'totalNumberOfRecords = Integer.parseInt (o.toString()); } ' –