首页 > 解决方案 > Thymeleaf - 添加没有值的属性

问题描述

在 Thymeleaf 我想生成以下 HTML

<span data-my-attr>
</span>

我想data-my-attr有条件地显示,但似乎无法有条件地显示或不显示空属性。

required属性的情况下,th:required但对于自定义属性,什么都没有。

我尝试使用th:attr="'data-my-attr'=${value}"and value is trueor false,但它不起作用。

标签: thymeleaf

解决方案


让我们假设您的属性什么时候应该显示,condition什么时候不应该显示。您可以拥有以下内容:truefalse

<span data-my-attr th:attr="${condition} ? 'meaningless' : 'data-my-attr'=''"></span>

解释:

根据此线程,当您为其中的某个属性指定空值时,th:attrThymeleaf 将删除该属性。所以在上面的片段中:

  1. data-my-attr默认添加。
  2. 使用 将空值分配给属性th:attr
  3. 被空值覆盖的属性名称根据 选择${condition}
  4. 什么时候应该保留,${condition}所以应该选择任何无意义的名称(标签中不存在)。truedata-my-attr
  5. 否则data-my-attr应删除,以便选择此名称。

感觉很老套,但这种删除属性的方式似乎从 2012 年开始就有效。因此我认为它是稳定的。


推荐阅读