panicbus
11/27/2017 - 7:38 PM

Pagination JSP

<%-- page range --%>
<c:choose>
	<%-- List all page links if total number of pages for the category is 4 or below --%>
	<c:when test="${pagesAvailable <= 4}">
		<c:forEach begin='1' end='${pagesAvailable}' varStatus="loop">
			<li class="page-link" role="presentation">
				<a href="${paginationLink}?pgN=${loop.index}" class="ajax-pagination-action ${currentPage eq loop.index? 'inactive' : ''} paginationLink ${bottomPagination ? 'forceTop' : ''} " role="menuitem">${loop.index}</a>
			</li>
		</c:forEach>
	</c:when>
	<c:otherwise>
					
		<c:choose>
			<%-- If user is on page 1 or 2 and total Num of pages is more than 4--%>
			<c:when test="${currentPage < 3}">
				<c:forEach begin='1' end='3' varStatus="loop">
					<li class="page-link" role="presentation">
						<a href="${paginationLink}?pgN=${loop.index}" class="ajax-pagination-action ${currentPage eq loop.index ? 'inactive' : ''} paginationLink ${bottomPagination ? 'forceTop' : ''} " role="menuitem">${loop.index}</a>
					</li>
				</c:forEach>
				<li class="page-more after" role="presentation"> ... </li>
				<li class="page-link" role="presentation">
					<a href="${paginationLink}?pgN=${pagesAvailable}" class="ajax-pagination-action paginationLink ${bottomPagination ? 'forceTop' : ''} " role="menuitem" tabindex="-1">${pagesAvailable}</a> 
				</li>
			</c:when>
			<%-- Display "..." between (N+1) and (L) only if the difference between them is more than 1 --%>
			<c:when test="${currentPage >= (pagesAvailable - 2)}">
				<li class="page-link" role="presentation">
					<a href="${paginationLink}?pgN=1" class="ajax-pagination-action paginationLink ${bottomPagination ? 'forceTop' : ''} " role="menuitem">1</a>
				</li>
				<li class="page-more before" role="presentation"> ... </li>
				<c:forEach begin='${pagesAvailable - 2}' end='${pagesAvailable}' varStatus="loop">
					<li class="page-link" role="presentation">
						<a href="${paginationLink}?pgN=${loop.index}" class="ajax-pagination-action ${currentPage eq loop.index? 'inactive' : ''} paginationLink ${bottomPagination ? 'forceTop' : ''} " role="menuitem">${loop.index}</a>
					</li>
				</c:forEach>
			</c:when>
			<c:otherwise>
				<li class="page-link" role="presentation">
					<a href="${paginationLink}?pgN=1" class="ajax-pagination-action paginationLink ${bottomPagination ? 'forceTop' : ''} " role="menuitem" tabindex="-1">1</a>
				</li>
				<li class="page-more before" role="presentation"> ... </li>
				<c:forEach begin='${currentPage}' end='${currentPage + 1}' varStatus="loop">
					<li class="page-link" role="presentation">
						<a href="${paginationLink}?pgN=${loop.index}" class="ajax-pagination-action ${currentPage eq loop.index ? 'inactive' : ''} paginationLink ${bottomPagination ? 'forceTop' : ''} " role="menuitem">${loop.index}</a>
					</li>
				</c:forEach>
				<li class="page-more after" role="presentation"> ... </li>
				<li class="page-link" role="presentation">
					<a href="${paginationLink}?pgN=${pagesAvailable}" class="ajax-pagination-action paginationLink ${bottomPagination ? 'forceTop' : ''} " role="menuitem">${pagesAvailable}</a>
				</li>
			</c:otherwise>
		</c:choose>
	</c:otherwise>
</c:choose>