Добавление ссылок «Предыдущая / Следующая»
Это должно быть довольно простым, но имейте в виду, что вы, вероятно, не хотите отображать «Предыдущая», если вы на первой странице, или «Следующая», если вы на последнейpage.
Предыдущий / Следующий пример
Вот пример ссылок Предыдущий / Следующий.Добавьте первый блок if над вашим forEach, а второй - под ним.
<c:if test="${currentPage > 1}">
<c:url value="MaintenanceListVehicles.htm" var="prevUrl">
<c:param name="current" value="${currentPage - 1}"/>
</c:url>
<a href="<c:out value="${prevUrl}"/>">Prev</a>
</c:if>
<c:if test="${maxPages > currentPage}">
<c:url value="MaintenanceListVehicles.htm" var="nextUrl">
<c:param name="current" value="${currentPage + 1}"/>
</c:url>
<a href="<c:out value="${nextUrl}"/>">Next</a>
</c:if>
Отображение многоточия
Это сложнее, поскольку для него требуется алгоритм, а не то, что я бы посоветовалвы используете только JSP EL и / или JSTL (поскольку вам, вероятно, придется использовать скриптлеты, а это плохие новости).В прошлом я использовал класс bean-компонента PaginationHelper
в сочетании с файлом тегов JSP 2.0 для реализации этого стиля разбиения на страницы.
Создайте класс с именем PaginationPage
, который имеет целочисленный номер страницы иСтрунная этикетка.Пусть PaginationHelper
обрабатывает всю логику для вычисления страниц и возвращает тегу PaginationPages
список.Затем тегу нужно просто перебрать страницы и вывести их по своему усмотрению.
Логика разбиения на страницы
Вот некоторая логика, которую следует учитывать при реализации этого стиля разбиения на страницы:
- Если страниц меньше 10, просто отобразите все страницы.
- Если номер текущей страницы близок к единице, не отображайте левый многоточие.
- Отображение текущей страницы и трех страниц, предшествующих ей и после нее.Например, если текущая страница - 14, отобразите 11, 12, 13, 14, 15, 16, 17. Вы можете настроить это, чтобы показать больше / меньше трех, но это должно быть одинаковое количество страниц на каждой стороне.
- Если номер текущей страницы близок к общему количеству страниц, не отображайте правильный многоточие.
- Ссылки на многоточии должны представлять среднюю точку между двумя страницами, окружающими его.Используя ваш снимок экрана в качестве примера, первый многоточие будет для страницы 4 ((9 - 2) / 2 = 3,5), а второй многоточие будет для страницы 22 ((61 - 18) / 2 = 21,5).
Различные приложения реализуют эти правила немного по-разному.Не стесняйтесь проверять исходный код других приложений, чтобы увидеть, какие правила они соблюдают.