Thymeleaf 忽略从方法返回的字符串中的“\n”

Mic*_* Dz 2 html java thymeleaf

在我的 HTML 中,我使用通过 thymeleaf 调用方法获取内容的段落:

<p data-th-text="${fund.formatDescription()}"></p>
Run Code Online (Sandbox Code Playgroud)

方法:

private String description;

public String formatDescription() {  
    return description.replace(";", " \n ");
}
Run Code Online (Sandbox Code Playgroud)

我希望我的描述在每个分号的位置都有结束行。所以这就是我添加\n. 但是 thymeleaf 输入新行并返回连续文本。我尝试添加,<br/>但最终没有被解释为 html。我应该添加什么来代替分号来强制在描述中换行?

Met*_*ids 5

Html 忽略换行符(这不是 thymeleaf 的错)。您可以:

  • 将描述放入<pre></pre>标签(或使用元素white-space上的css属性<p>)。
  • 而不是替换;\n,替换为<br />并使用th:utext代替data-th-text。(这意味着 html 将是未转义的,因此您最好确保用户不能将其他 html 放入说明字段,否则您将面临 html 攻击)。

  • 由于某种原因,`data-th-utext` 不适用于 HTML 标签。但我已将其替换为“th:utext”,现在它工作正常!感谢您的帮助,请将其添加到您的答案中,以便我可以将其标记为已接受。 (2认同)