Thymeleaf如果在String上

时间:2016-12-09 13:42:52

标签: spring thymeleaf

我想根据内容显示(或不显示)文本。例如,如果status等于ACCEPTED,我想显示这个词,否则不要。我所拥有的是:

<h2>Background Image</h2>
<div class="bg">
  <div class="btn">Button</div>
  <button type="button">Button</button>
</div>

<h2>Before Pseudo Element Background Image</h2>
<div class="pseudo">
  <div class="btn">Button</div>
  <button type="button">Button</button>
</div>

但看起来它并没有这样做。

2 个答案:

答案 0 :(得分:5)

@ ak38您发布的解决方案工作正常但不完全正确。如果你想比较枚举,你应该使用这种表示法:

<td th:if="${trip.tripStatus == T(my.package.Status).ACCEPTED}" th:text="${trip.tripStatus}"></td>

如果由于某种原因,另一个程序员将​​此枚举从ACCEPTED重命名为ACCEPT,那么您的代码将无法正常工作并且从未满足条件,而上述版本将抛出异常,通知视图未针对该更改做好准备。

答案 1 :(得分:1)

希望你能解决这个问题。但无论如何,我正在发布解决方案,它可能会帮助其他人。如果要将ENUM类型与String进行比较,请使用toString方法将ENUM类型转换为String。

<td th:if="${#strings.toString(trip.tripStatus)} == 'ACCEPTED'" th:text="${trip.tripStatus}"></td>