thymeleaf - Thymeleaf - 添加没有值的属性
问题描述
在 Thymeleaf 我想生成以下 HTML
<span data-my-attr>
</span>
我想data-my-attr
有条件地显示,但似乎无法有条件地显示或不显示空属性。
在required
属性的情况下,th:required
但对于自定义属性,什么都没有。
我尝试使用th:attr="'data-my-attr'=${value}"
and value is true
or false
,但它不起作用。
解决方案
让我们假设您的属性什么时候应该显示,condition
什么时候不应该显示。您可以拥有以下内容:true
false
<span data-my-attr th:attr="${condition} ? 'meaningless' : 'data-my-attr'=''"></span>
解释:
根据此线程,当您为其中的某个属性指定空值时,th:attr
Thymeleaf 将删除该属性。所以在上面的片段中:
data-my-attr
默认添加。- 使用 将空值分配给属性
th:attr
。 - 被空值覆盖的属性名称根据 选择
${condition}
。 - 什么时候应该保留,
${condition}
所以应该选择任何无意义的名称(标签中不存在)。true
data-my-attr
- 否则
data-my-attr
应删除,以便选择此名称。
感觉很老套,但这种删除属性的方式似乎从 2012 年开始就有效。因此我认为它是稳定的。