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

如何在SpringBoot2.5.4的Thymeleaf中生成带锚点的URL链接

问题原因

你之前的写法无法生效有两个核心原因:

  • Thymeleaf的@{}链接表达式中,#符号默认会被识别为片段表达式前缀,不会被解析为URL锚点标识符
  • 你写的表达式存在语法错误,括号未正确配对

正确实现方案

方案1:路径与锚点拼接(最常用,兼容性最好)

直接先生成基础路径,再拼接锚点部分即可,完全兼容Spring Boot 2.5.4内置的Thymeleaf版本:

<!-- 最终生成 /import#34546 格式的链接 -->
<a th:href="@{/import} + '#' + ${object.id}">link</a>

如果你的基础路径需要携带查询参数,写法也可以兼容:

<!-- 示例:带查询参数的场景,生成如 /import?type=1#34546 的链接 -->
<a th:href="@{/import(type=${type})} + '#' + ${object.id}">link</a>

注意:路径开头加/代表从应用上下文根开始生成绝对路径,不加则是相对于当前页面路径的相对路径,你可以根据自己的实际需求调整。

方案2:字面量替换写法(适合简单场景)

也可以用Thymeleaf的字面量替换语法实现,写法更简洁:

<a th:href="|@{/import}#${object.id}|">link</a>

内容的提问来源于stack exchange,提问作者Marcos Córtes

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 12:39:04