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

Thymeleaf模板中如何将↵字符转换为HTML换行显示?

解决方案

为什么当前方式不生效

HTML本身会忽略普通文本里的换行符,Thymeleaf的th:text会转义特殊字符,th:utext虽然不转义,但换行符在普通HTML元素里依然不会被解析成换行,所以才会显示成单行且↵消失。

两种可行方案

1. 前端Thymeleaf直接处理(无需修改后端)

  • 替换成HTML换行标签:用Thymeleaf的字符串工具类把文本里的↵(如果后端传的是实际换行符,比如\n或\r\n就替换对应的字符)替换成<br>,再用th:utext渲染,浏览器会解析<br>为换行:
<li th:utext="${#strings.replace(myVar, '↵', '<br>')}"></li>
  • 使用<pre>标签保留格式:<pre>标签会原样保留文本的换行、空格等格式,直接用th:text渲染即可,可加样式消除默认格式:
<pre style="white-space: pre-wrap; border: none; padding: 0; margin: 0;">
  <li th:text="${myVar}"></li>
</pre>

2. 后端预处理后传模板

如果多个页面都需要展示这类带换行的文本,后端统一处理更高效:

  • 后端将文本中的↵(或实际换行符)替换为<br>,比如Java代码示例:
String processedText = originalText.replace("↵", "<br>");
// 将processedText传入Thymeleaf模板
  • 模板里用th:utext渲染处理后的文本:
<li th:utext="${processedText}"></li>

方案选择

  • 仅单个页面需要:选前端处理更快捷
  • 多处需要统一格式:选后端预处理更省心

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 03:40:00