thymeleaf-utext/th:utext正在自己插入一个换行符,为什么?

fv2wmkja  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(735)

这个问题在这里已经有答案了

强标签新行(2个答案)
两个月前关门了。
使用简单的html标签 th:utext 似乎导致出现错误的换行符。为什么会这样,和/或我该如何预防?
我的标记如下所示:

<div class="row mb-1" th:utext="${item.snippet}"></div>

我的java如下所示:

snippet = StringUtils.replaceIgnoreCase(snippet, 
searchText.trim(), 
"<strong>"+searchText.trim().toUpperCase()+"</strong>");

什么时候 snippet 是“敏捷的棕色狐狸跳过了懒惰的狗”; searchText 是“跳跃”;以及 strong 标签存在;html呈现如下:

The quick brown fox
<strong>JUMPED</strong>
over the lazy dogs

当我移除 strong 标记,html呈现如下:

The quick brown fox JUMPED over the lazy dogs

值得注意的是,我所说的不仅仅是它在浏览器中的显示方式;源代码实际上在 </strong> ; 当 </strong> 不存在。我已经确认它没有被添加到java层。

nvbavucw

nvbavucw1#

尝试使用“内联表达式:”

<div class="row mb-1">[(${item.snippet})]</div>

记录在这里。
至于原因,我有一个类似的模板,并注意到了thymeleaf3.0发布后的行为变化。在描述内联表达式时,问题将等效表达式描述为:

<div class="row mb-1"><th:block th:utext="${item.snippet}"/></div>

该行为表明对某些或所有标记和 <th:block th:utext"..."/> 必须隔离目标文本。

相关问题