You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JSP分页代码转Thymeleaf后无法正常运行,求技术指导

问题分析与修正方案

先梳理你代码里的几个核心问题:

  1. 循环变量引用错误
    Thymeleaf中th:each遍历出的变量i必须用${i}包裹引用,你写的${pageList.number} == i会把i当成普通字符串,导致页码选中状态永远不生效,正确判断逻辑是${pageList.number == i}或者${pageList.number} == ${i}。

  2. 空指针与无效序列风险
    原判断th:if="${pageList.content != null}"不够严谨——如果pageList本身为null会直接报错;另外当pageList.totalPages为0时,#numbers.sequence(0, pageList.totalPages-1)会生成0到-1的无效序列,必须先判断pageList存在且totalPages > 0。

  3. 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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 08:01:43