JSP分页代码转Thymeleaf后无法正常运行,求技术指导
问题分析与修正方案
先梳理你代码里的几个核心问题:
循环变量引用错误
Thymeleaf中th:each遍历出的变量i必须用${i}包裹引用,你写的${pageList.number} == i会把i当成普通字符串,导致页码选中状态永远不生效,正确判断逻辑是${pageList.number == i}或者${pageList.number} == ${i}。空指针与无效序列风险
原判断th:if="${pageList.content != null}"不够严谨——如果pageList本身为null会直接报错;另外当pageList.totalPages为0时,#numbers.sequence(0, pageList.totalPages-1)会生成0到-1的无效序列,必须先判断pageList存在且totalPages > 0。URL语法冗余
Thymeleaf的URL语法支持直接在括号内传参数,不需要手动加?,比如@{/path(param=value)}比@{/path?(param=value)}更规范。
修正后的完整代码:
<div th:if="${pageList != null and pageList.totalPages > 0}"> <span th:each="i : ${#numbers.sequence(0, pageList.totalPages - 1)}"> <a th:href="@{/testCase/projectList(currentPage=${i})}" th:style="${pageList.number == i} ? 'color: red' : ''"> [[${i + 1}]] </a> </span> </div>
额外说明:
- 合并了原有的两个
<span>标签,用th:style直接做条件样式判断,简化代码结构 - 新增
pageList.totalPages > 0的判断,避免生成无效页码 - 请确认后端接口的路径
/testCase/projectList和参数名currentPage与代码完全匹配,否则会出现请求404或参数接收失败的问题
内容的提问来源于stack exchange,提问作者ccc
相关产品推荐
相关产品推荐

