Thymeleaf/Spring:如何检查消息属性是否存在

Thymeleaf/Spring:如何检查消息属性是否存在,spring,thymeleaf,Spring,Thymeleaf,是否可以检查消息属性是否存在 示例:我想删除仅包含消息属性的循环中的可折叠div元素 [...] 你好,世界! 如果没有付款的其他信息,则不需要该元素。 假设我们有IDsDIRECT\u DEBIT、PAYPAL和SAFERPAY以及以下消息属性: payment.DIRECT_DEBIT=Direct debit payment.DIRECT_DEBIT.additionalInfo=Direct debit info text... payment.PAYPAL=PayPal payme

是否可以检查消息属性是否存在

示例:我想删除仅包含消息属性的循环中的可折叠div元素


[...]
你好,世界!
如果没有付款的其他信息,则不需要该元素。 假设我们有IDs
DIRECT\u DEBIT
PAYPAL
SAFERPAY
以及以下消息属性:

payment.DIRECT_DEBIT=Direct debit
payment.DIRECT_DEBIT.additionalInfo=Direct debit info text...
payment.PAYPAL=PayPal
payment.PAYPAL.additionalInfo=PayPal info text...
payment.SAFERPAY=Saferpay

正如您所看到的,
SAFERPAY

没有additionInfo消息属性,只有当元素不为null且不等于空字符串时,才可以使用th:if添加元素(我不知道您是如何实现该对象的)


你好,世界!
。。。您还应该更改id属性。在您的实现中,可能有多个id为“collapse1”的元素

如果您也不想显示输入字段,请使用th:block元素并将th:If属性放置在其中:

<div th:each="payment : ${paymentList}">
    <th:block
      th:if="${ ... && ... }"
    >   
        <input ...>
        <div ...>
        </div>
    </th:block>
</div>

您应该使用对象检查消息是否存在。例如:

th:if="${#messages.msgOrNull('payment.' + payment.id + '.additionalInfo') != null}"

<div id="collapse1" th:if="${#messages.msgOrNull('payment.' + payment.id + '.additionalInfo') != null}" th:utext="#{|payment.${payment.id}.additionalInfo|}" [...]>
    Hello, world!
</div>
th:if=“${#messages.msgOrNull('payment.+payment.id+'.additionalInfo')!=null}”
你好,世界!

它不是一个对象(
$
)。它是一个消息属性(
#
)。id属性已被更改。我使用[…]表示还有其他与我的问题不相关的属性。不确定该用户是否值得投反对票。。。只是想帮忙
th:if="${#messages.msgOrNull('payment.' + payment.id + '.additionalInfo') != null}"

<div id="collapse1" th:if="${#messages.msgOrNull('payment.' + payment.id + '.additionalInfo') != null}" th:utext="#{|payment.${payment.id}.additionalInfo|}" [...]>
    Hello, world!
</div>