Я пытаюсь использовать нумерацию страниц, но хочу ограничить количество отображаемых ссылок, чтобы ссылки на первые 3 страницы, ссылки на последние 3 страницы и ссылки на номера страниц находились по обе стороны от текущей страницы. Пример того, что я ищу, показан ниже:
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<div class="col-xs-12">
<nav aria-label="pagination">
<ol class="pagination justify-content-center">
<li class="page-item notactive">
<a class="page-link" href="?page=7" tabindex="-1">Previous</a>
</li>
<li class="page-item notactive">
<a class="page-link" data-slide-to="0" href="?page=1">1</a>
</li>
<li class="page-item notactive">
<a class="page-link" data-slide-to="1" href="?page=2">2</a>
</li>
<li class="page-item notactive">
<a class="page-link" data-slide-to="2" href="?page=3">3</a>
</li>
<li class="page-item ">
<span class="page-link" data-slide-to="3">...</span>
</li>
<li class="page-item notactive">
<a class="page-link" data-slide-to="7" href="?page=8">8</a>
</li>
<li class="page-item active">
<a class="page-link" data-slide-to="8" href="?page=9">9</a>
</li>
<li class="page-item notactive">
<a class="page-link" data-slide-to="9" href="?page=10">10</a>
</li>
<li class="page-item ">
<span class="page-link">...</span>
</li>
<li class="page-item notactive">
<a class="page-link" data-slide-to="12" href="?page=13">13</a>
</li>
<li class="page-item notactive">
<a class="page-link" data-slide-to="13" href="?page=14">14</a>
</li>
<li class="page-item notactive">
<a class="page-link" data-slide-to="14" href="?page=15">15</a>
</li>
<li class="page-item">
<a class="page-link" href="?page=10">Next</a>
</li>
</ol>
</nav>
</div>
Код, который я имею, выглядит следующим образом:
<nav aria-label="pagination">
<ol class="pagination justify-content-center">
<li class="page-item " th:classappend="${1==pagination.getPage()} ? disabled">
<a class="page-link" th:href="'?page='+${pagination.getPage()-1}" tabindex="-1" >Previous</a>
</li>
<li class="page-item" th:classappend="${i==pagination.getPage()} ? active : notactive">
<th:block th:if='${pagination.getTotalPages() > 10}'>
<a th:if='${i <= 3}' class="page-link" th:href="'?page='+${i}" th:text="${i}" >1</a>
<a th:if='${i > 3 && (i < (pagination.getPage()-1)}' class="page-link" >...</a>
<a th:if='${i > 3 && (i > (pagination.getPage()+1)}' class="page-link" >...</a>
<a th:if='${i > 3 && (i == pagination.getPage()-1) or i == pagination.getPage() or i == (pagination.getPage()+1)) }' class="page-link" th:href="'?page='+${i}" th:text="${i}" >1</a>
<a th:if='${i > 3 && i < (pagination.getTotalPages() - 3) }' class="page-link" th:href="'?page='+${i}" th:text="${i}" >1</a>
</th:block>
<th:block th:if='${pagination.getTotalPages() <= 10}'>
<a class="page-link" th:data-slide-to="${i-1}" th:href="'?page='+${i}" th:text="${i}" >1</a>
</th:block>
</li>
<li class="page-item" th:classappend="${pagination.getTotalPages()==pagination.getPage()} ? disabled">
<a class="page-link" th:href="'?page='+${pagination.getPage()+1}" >Next</a>
</li>
</ol>
</nav>
Однако я получаю следующее сообщение об ошибке:
org.springframework.expression.spel.SpelParseException: выражение [i> 3 && (i <(pagination.getPage () - 1)] @ 38: EL1044E: неожиданно исчерпан ввод </strong>
Любые идеи о том, как я могу заставить это работать?