如何在 Thymeleaf 中转义单引号 (')

问题描述 投票:0回答:5

<h1 th:text="${'What\'s up?'}"></h1>

我想要这个输出

<h1>What's up?</h1>

但是我得到了

TemplateInputException
。我尝试过使用 HTML 实体,但同样失败。

thymeleaf
5个回答
41
投票

双单引号。 像这样:

<h1 th:text="${'What''s up?'}" />

10
投票

要转义单引号,只需使用

\'

转义即可
<p th:text="'What\'s up?'"></p>
<p th:text="${myVar} + 'What\'s up?'"></p>

3
投票

也许使用 htm ascii 代码:

&#39;

<h1 th:text="${'What&#39;s up&#63;'}"></h1>

0
投票

如果您想将 onclick="showName('John')" 等代码传输到 thymeleaf 表达式, 使用 th:onclick=(${'showName'(\''+name+'\''}) 会报错:EL1065E: Unexpected escape character. 然后用双引号修复:

is this right?
<div th:onclick="${'showName('''+name+''''}"></div>

做测试,WTF!双单引号转义为 ''';。经过一番研究,我发现正确的方法是:

correct now:
<div th:onclick="'showName(\''+${name}+'\''"></div>

你应该将${name}作为一个整体,作为一个原子,不要在其中使用'+'操作。

我认为只有th:onclick是这样的,th:text可以在其中使用add操作。

我的英语很有趣,但我想你能理解。


0
投票

显示 Oct'24

th:text="${#temporals.format(billSummary.billYearMonth,'MMM''yy')}"

© www.soinside.com 2019 - 2024. All rights reserved.