Last active
August 29, 2015 14:15
-
-
Save virgium03/ed0c01d6c5862d557a57 to your computer and use it in GitHub Desktop.
Pagination for JSPs using Spring Data
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<c:set var="page" scope="request" value="${it.number + 1}"/> | |
<c:set var="size" scope="request" value="${it.size}"/> | |
<c:set var="maxPages" scope="request" value="${it.totalPages}"/> | |
<c:if test="${it.number lt 0 or it.totalElements le 0 or it.totalPages le 0}"> | |
<c:set var="page" value="0"/> | |
<c:set var="size" value="0"/> | |
<c:set var="maxPages" value="0"/> | |
</c:if> | |
<c:if test="${empty size || size lt 1}"> | |
<c:set var="size" value="25"/> | |
</c:if> | |
<spring:message code="results_per_page" text="Results per page"/> | |
<c:out value=" "/> | |
<c:forEach var="i" begin="5" end="25" step="5"> | |
<c:choose> | |
<c:when test="${size == i}"> | |
<c:out value="${i}"/> | |
</c:when> | |
<c:otherwise> | |
<spring:url value="/documents" var="sizeUrl"> | |
<c:forEach var="parameter" items="${paramValues}"> | |
<c:if test="${parameter.key ne 'page' and parameter.key ne 'pageSize'}"> | |
<spring:param name="${parameter.key}" value="${parameter.value[0]}"/> | |
</c:if> | |
</c:forEach> | |
<spring:param name="page" value="1"/> | |
<spring:param name="pageSize" value="${i}"/> | |
</spring:url> | |
<a href="${sizeUrl}">${i}</a> | |
</c:otherwise> | |
</c:choose> | |
<c:out value=" "/> | |
</c:forEach> | |
<c:out value="| "/> | |
<c:if test="${page ne 1 and page gt 0}"> | |
<spring:url value="/documents" var="first"> | |
<c:forEach var="parameter" items="${paramValues}"> | |
<c:if test="${parameter.key ne 'page' and parameter.key ne 'pageSize'}"> | |
<spring:param name="${parameter.key}" value="${parameter.value[0]}"/> | |
</c:if> | |
</c:forEach> | |
<spring:param name="page" value="1"/> | |
<spring:param name="pageSize" value="${size}"/> | |
</spring:url> | |
<spring:message code="first_page" text="First page" var="first_label"/> | |
<a class="image" href="${first}" title="${first_label}"> | |
<i class="icon-fast-backward"></i> | |
</a> | |
</c:if> | |
<c:if test="${page gt 1}"> | |
<spring:url value="/documents" var="previous"> | |
<c:forEach var="parameter" items="${paramValues}"> | |
<c:if test="${parameter.key ne 'page' and parameter.key ne 'pageSize'}"> | |
<spring:param name="${parameter.key}" value="${parameter.value[0]}"/> | |
</c:if> | |
</c:forEach> | |
<spring:param name="page" value="${page - 1}"/> | |
<spring:param name="pageSize" value="${size}"/> | |
</spring:url> | |
<spring:message code="previous_page" text="Previous page" var="previous_label"/> | |
<a class="image" href="${previous}" title="${previous_label}"> | |
<i class="icon-chevron-left"></i> | |
</a> | |
</c:if> | |
<c:out value=" "/> | |
<spring:message code="page_position" text="Page ${page} out of ${maxPages}" arguments="${page},${maxPages}" argumentSeparator=","/> | |
<c:out value=" "/> | |
<c:if test="${page lt maxPages}"> | |
<spring:url value="/documents" var="next"> | |
<c:forEach var="parameter" items="${paramValues}"> | |
<c:if test="${parameter.key ne 'page' and parameter.key ne 'pageSize'}"> | |
<spring:param name="${parameter.key}" value="${parameter.value[0]}"/> | |
</c:if> | |
</c:forEach> | |
<spring:param name="page" value="${page + 1}"/> | |
<spring:param name="pageSize" value="${size}"/> | |
</spring:url> | |
<spring:message code="next_page" text="Next page" var="next_label"/> | |
<a class="image" href="${next}" title="${next_label}"> | |
<i class="icon-chevron-right"></i> | |
</a> | |
</c:if> | |
<c:if test="${page ne maxPages}"> | |
<spring:url value="/documents" var="last"> | |
<c:forEach var="parameter" items="${paramValues}"> | |
<c:if test="${parameter.key ne 'page' and parameter.key ne 'pageSize'}"> | |
<spring:param name="${parameter.key}" value="${parameter.value[0]}"/> | |
</c:if> | |
</c:forEach> | |
<spring:param name="page" value="${maxPages}"/> | |
<spring:param name="pageSize" value="${size}"/> | |
</spring:url> | |
<spring:message code="last_page" text="Last page" var="last_label"/> | |
<a class="image" href="${last}" title="${last_label}"> | |
<i class="icon-fast-forward"></i> | |
</a> | |
</c:if> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment