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

如何在Thymeleaf TEXT模板中正确使用th:replace?

在Thymeleaf TEXT模板中实现文件替换/插入的正确方式

问题根源

你之前的写法错误在于使用了HTML模式的[#th:block]标签语法,Thymeleaf的TEXT模式不支持这种标签式指令,只会将其当作普通文本处理,最终直接输出片段路径字符串。

正确实现方案

  1. 修改模板引用语法
    直接使用TEXT模式的内联表达式引用外部文件,无需包裹任何标签:

    [[#{email.greeting}]],
    
    [[#{email.message}]]
    
    [[#{email.signature}]]
    
    ------------------------------------------
    
    [[~{includes/footer}]]
    
  2. 确认文件路径匹配
    你的模板解析器前缀为/templates/mail/、后缀为.txt,因此includes/footer会对应到/templates/mail/includes/footer.txt,请确保该文件存在且路径完全匹配。

  3. 验证处理结果
    修改后Thymeleaf会正确替换片段内容,最终输出示例:

    Hello you,
    
    you look really great today :)
    
    Have fun and enjoy your round trip here on earth!
    
    ------------------------------------------
    
    Your company - 123 Main St, Anytown
    

扩展:给片段传递参数

如果需要向插入的片段传递变量(比如footer.txt中包含[[${companyInfo}]]),可以通过表达式传参:

[[~{includes/footer(companyInfo=${currentCompany})}]]

内容的提问来源于stack exchange,提问作者Slevin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 03:01:25