Ограничить количество страниц в пагинации
подскажите пожалуйста, каким образом ограничить пагинацию на странице. На данный момент количество страниц выходит за рамки экрана. Как сделать, что бы было четкое представление информации
Имеется контроллер:
@GetMapping("/ondock")
public String ondockGet(Model model, Principal principal,
@RequestParam(value = "page", required = false, defaultValue = "0") Integer page) throws IOException, ParseException {
Page<Cargo> cargos = cargoService.cargoOndockPage(PageRequest.of(page, 10));
model.addAttribute("cargos", cargos);
model.addAttribute("numbers", IntStream.range(0, cargos.getTotalPages()).toArray());
return "ondock";
}
и HTML кусок:
<ul class="pagination" th:if="${cargos.totalPages > 0}">
<li th:each="pageNumber : ${numbers}"
th:class="${pageNumber == cargos.number} ? active">
<a th:href="@{'/ondock?page=' + ${pageNumber}}" th:text="${pageNumber + 1}"></a>
</li>
</ul>
Ответы (1 шт):
Автор решения: lampa
→ Ссылка
Очевидно, нужно скрывать какие-то номера страниц)
Возможно, проще это будет сделать через стили, возможно, например, так:
if(cargos.getTotalPages() > 10) {
model.addAttribute("numbers",
IntStream.range(
page > 5 ? (page - 5) : 0,
(cargos.getTotalPages() - page) > 5 ? (page + 5) : cargos.getTotalPages()
).toArray());
}
else {
model.addAttribute("numbers", IntStream.range(0, cargos.getTotalPages()).toArray());
}