2015-09-16 2 views
0

Я уже опубликовал это сообщение вчера .. но никто не ответил на него. Я использую весенний mvc-каркас.Spring mvc pagination Как получить результат

Я хочу сделать нумерацию страниц, как на картинке ниже: - enter image description here

Так что я сделал: -

@RequestMapping(value = "/detailssection/id",method=RequestMethod.GET) 
    public @ResponseBody String showthedetails(Map<String, Object> map, HttpServletRequest request) throws IOException{ 

//I want to display 5 details per page 

        int recordsPerPage = 5; 

//It will count total no of records(like 300 records are there) 

    int totalnoOfrecords = viewService.TotalnoOfRecoredsbanglains1(); 

//If the totalnoOfrecords=300 then page noumber will be 300/5=60 that means 1,2....60   
int pagenumbers = (int) Math.ceil(totalnoofrecords * 1.0/recordsPerPage); 

         map.put("detail", new Detail()); 
         map.put("noOfPages", pagenumbers); 
         map.put("detailList", viewService.viewDetails()); 



      return "detailssection"; 
     } 

и моя страница JSP, как: -

<div id= "part1"> 

<div id= "details"> 
     <p>${detail.description}</p> 
    </div> 


    </c:forEach> 

    <%--For displaying Previous link except for the 1st page --%> 

    <c:if test="${currentPage != 1}"> 
     <a href="/detailssection/id?pagenumber=${currentPage - 1}">Previous</a> 
    </c:if> 



    <%--For displaying Page numbers. 
    The when condition does not display a link for the current page--%> 

      <c:forEach begin="1" end="${noOfPages}" var="i"> 
       <c:choose> 
        <c:when test="${currentPage eq i}"> 
         ${i} 
        </c:when> 
        <c:otherwise> 
         <a href="/detailssection/id?pagenumber=${i}">${i}</a> 
        </c:otherwise> 
       </c:choose> 
      </c:forEach> 


    <%--For displaying Next link --%> 

    <c:if test="${currentPage lt noOfPages}"> 
     <a href="/detailssection/id?pagenumber=${currentPage + 1}">Next</a> 
    </c:if> 

</div> 

Но я не получаю никаких номеров страниц. Показывает только раздел «предыдущая страница». Ему нравится: - enter image description here Что я делаю неправильно? Есть ли какие-либо проблемы на странице jsp?

+0

если вы хотите индекс текущей итерации, вы должны использовать «varStatus» цикла, или если у вас есть номера в переменной noOfPages, чтобы отобразить его, используйте '' PS: как и вы , вы не можете получить доступ к карте из JSTL. – drgPP

ответ

1

Начнем с начала.

Если у вас есть карта на вашем requestScope, предположим, что это MyMap со следующими ключами: details, noOfPages и detailList, чтобы получить доступ к его значения с помощью клавиш, синтаксис выглядит следующим образом:

<c:forEach begin="1" end="$MyMap['noOfPages']" var="i" varStatus="loop"> 
    <c:choose> 
     <c:when test="${currentPage eq i}"> 
      ${i} 
     </c:when> 
     <c:otherwise> 
      <a href="/detailssection/id?pagenumber=${loop.index}">${loop.index}</a> 
     </c:otherwise> 
    </c:choose> 
</c:forEach> 
+0

Ok.Now, я понимаю .. дайте мне попробовать ... тогда я сообщу вам. – Salini

+0

@Salini будет знать, что доступ к карте также по ее ключу, поэтому, если вы установите свою карту по запросу, например 'request.setAttribute (" myMap ", MyMap); вы должны получить его из requestScope по его ключу' end = '$ myMap [' noOfpages '] "' – drgPP

Смежные вопросы