我需要Thymeleaf始终包含一个label
元素,但只能有条件地显示它的值。
如果message.type
等于warning
,则应显示message.text
。否则,HTML DOM仍应包含label
元素。
我已经尝试过,但是当label
不等于message.type
时,HTML中缺少warning
元素。
<label id="message" th:if="${message.type == 'warning'}"
th:value="${message.text}" th:text="${message.text}"></label>
我正在尝试完成这样的事情:
<label id="message" th:value="${message.type=='warning' ?
message.text: ''}" th:text="${message.type=='warning'?
message.text: ''"></label>
如果message.type
是警告,我希望这样的HTML:
<label id="message">My warning message</label>
否则,我想要这样的HTML:
<label id="message"></label>
答案 0 :(得分:1)
许多不同的方法可以完成此任务。您已经有一个我期望可以使用的产品。 (为什么您说它不起作用?)另外,我不确定为什么要在标签中包含th:value
(我将它们包括在内以匹配您的问题)。
<label
id="message"
th:value="${message.type == 'warning'? message.text : ''}"
th:text="${message.type == 'warning'? message.text : ''}"></label>
您还可以执行以下操作:
<label th:if="${message.type == 'warning'}" id="message" th:value="${message.text}" th:text="${message.text}"></label>
<label th:unless="${message.type == 'warning'}" id="message"></label>
或这样(假设额外的跨度不会弄乱您想要的标记):
<label id="message"><span th:if="${message.type == 'warning'}" th:text="${message.text}" /></label>