2016-01-19 141 views
0

我想以這種方式顯示分頁鏈接:當前頁面和3個向前鏈接和3個向後鏈接。JSP和分頁鏈接

顯然我不想顯示負面頁面或最後一頁之後的頁面的鏈接。

所以在我的pagination.jsp我有以下幾點: param.pages是沒有<c:if test="${page < param.pages} ">東西 的總頁數,我正確,但是與param.pages後頁面沒有檢查顯示的鏈接。與C:如果,我什麼都不顯示,我認爲這是因爲測試不承認

<c:forEach begin="${currentPage + 1 }" end="${currentPage + 3}" var="page"> 
      <c:if test="${page < param.pages} "> 
      <li><a 
        href="${pageContext.request.contextPath}/${param.currentURL }/<c:out value="${page }"/>"> 
<c:out value="${page }"/> </a></li> 
      </c:if> 
      </c:forEach> 

這是PROCEDE最好的方法是什麼?

+0

你可以看看[這個演示(https://github.com/BranislavLazic/spring-thymeleaf-pagination)。我用了Thymeleaf。但你會弄明白的。計算將顯示哪些鏈接的邏輯是在「尋呼機」類中。 –

回答

1

我終於發現它,只使用JSP標籤,不知道它是否是最好的解決方案,但它的工作原理,我會寫下來,如果任何人需要它。

在我pagination.jsp

<c:set var="maxLink" value="4"></c:set> // it's the number of links you want before and after the current one 

// this part is to avoid to have negative values in the forEach cycle for the previous links 
<c:set var="bottomLimit" value="${param.currentPage - maxLink }"></c:set> 

     <c:choose> 
      <c:when test="${bottomLimit <= 0 }"> 
       <c:set var="begin" value="1"></c:set> 
      </c:when> 
      <c:otherwise> 
       <c:set var="begin" value="${bottomLimit }"></c:set> 
      </c:otherwise> 
     </c:choose> 

<c:forEach begin="${begin }" end="${param.currentPage -1}" 
      var="pageBefore"> 

      <li><a 
       href="${pageContext.request.contextPath}/${param.currentURL }/<c:out value="${pageBefore }"/>"><c:out 
         value="${pageBefore }" /> </a></li> 

     </c:forEach> 

// link to the currentPage 
<li class="active"><a 
      href="${pageContext.request.contextPath}/${param.currentURL }/${param.currentPage}">${param.currentPage }</a></li> 

//Link to the next pages, that ends at the last page 
<c:set var="end" value="${param.currentPage + maxLink }"></c:set> 
<c:forEach begin="${param.currentPage + 1 }" end="${end}" var="page"> 
      <c:if test="${page <= param.pages}"> 
       <li><a 
        href="${pageContext.request.contextPath}/${param.currentURL }/<c:out value="${page }"/>"><c:out 
          value="${page }" /> </a></li> 
      </c:if> 
     </c:forEach>