我在Spring启动应用程序中实现了pagation。它的逻辑没有问题,但是我遇到了一个与Thymeleaf有关的奇怪问题。
现在,如果我转到以下网址
http://localhost:8080/Phoenix-listings
如果我将鼠标悬停在第2页的链接上
http://localhost:8080/2
这是错误的链接,但如果我手动转到以下网址
http://localhost:8080/Phoenix-listings/1
然后,如果我将鼠标悬停在第2页上,则链接为
http://localhost:8080/Phoenix-listings/2
应该如何。
即使我在http://localhost:8080/Phoenix-listings
?
以下是与我在Thymeleaf中的分页相关的部分
<div class="row">
<div th:if="${ads.totalPages != 1}"
class="form-group col-md-11 pagination-centered">
<ul class="pagination">
<li th:class="${ads.number == 0} ? disabled"><a
class="pageLink" th:href="1">«</a></li>
<li th:class="${ads.number == 0} ? disabled"><a
class="pageLink" th:href="${ads.number}">←</a></li>
<li
th:class="${ads.number == (page - 1)} ? 'active pointer-disabled'"
th:each="page : ${#numbers.sequence(pager.startPage, pager.endPage)}">
<a class="pageLink" th:href="${page}" th:text="${page}"></a>
</li>
<li th:class="${ads.number + 1 == ads.totalPages} ? disabled">
<a class="pageLink" th:href="${ads.number + 2}">→</a>
</li>
<li th:class="${ads.number + 1 == ads.totalPages} ? disabled">
<a class="pageLink" th:href="${ads.totalPages}">»</a>
</li>
</ul>
</div>
</div>
答案 0 :(得分:1)
在这种情况下,你应该使用内置url syntax的百里香。它看起来像这样:
th:href="@{/{page}(page=${page})}"
使用@{/}
创建链接意味着百万美元会自动添加上下文(Phoenix-listings
。){page}
是一个占位符。 (page=${page})
用变量替换占位符。
您也可以使用字符串连接,但在大多数情况下我不建议使用它(因为使用标准语法意味着百万美元可以正确编码网址)。
th:href="@{${'/' + page}}"