如何使用Thymeleaf隐藏具有空值的字段的标签

时间:2017-06-18 05:37:08

标签: thymeleaf

我使用Thymeleaf作为Spring应用程序的模板引擎,当一个字段的值为null时,我想隐藏它的标签。这是我的方法,我没有设法使它工作:

<div th:if="${booking.privatecomments}">
     <b th:text="#{booking.private.comments}"></b>
     <p th:utext="${booking.privatecomments}"></p>
</div>

标签是第二行。

我尝试过这种不同的方法,但也没有成功:

<div th:utext="${booking.privatecomments != null}? 
     #{booking.private.comments} + ': ' + ${booking.privatecomments}"></div>

任何帮助都会非常感谢,提前谢谢。

1 个答案:

答案 0 :(得分:1)

我猜你的问题要么是privatecomments的返回类型(它是字符串,不是吗?),或者它只是不为空(例如为空)。

然而,如果你想要隐藏片段th:if或其对应的th:unless是可行的方法。以下是th:if的工作原理。一旦你得到它,解决你的问题将是微不足道的。

在以下情况下,它会评估为true

如果传递的值不为null:

  • 如果value是布尔值且为真
  • 如果值是数字且非零
  • 如果值是字符且非零
  • 如果value是字符串且不是“false”,“off”或“no”
  • 如果value不是布尔值,数字,字符或字符串。

如果值为null,则th:if将始终评估为false。

您可以找到包含示例here的完整文档。我建议你在预订对象上提供一个布尔属性,如果有私人评论,它将回答。