Thymeleaf - 检查数组是否包含 属性 的元素

Thymeleaf - Check if array contains element with property

我有一个 comments 的列表。每个评论都有一个属性author。每个作者都有一个 username.

我只想在当前用户尚未发表评论时显示特定按钮。 (这意味着列表中不能有评论,其中作者的用户名等于user.username)

这是 JavaScript 中的样子:

if(!comments.some(comment => comment.author.username === user.username))

但我不知道如何在 Thymeleaf 中做到这一点。我找不到任何必要的函数,如 array#map()、array#any() 等。内联循环似乎也不是问题。

 <button th:if="${!<What goes here?>}" class="btn btn-primary">Add Comment</button>

我该怎么做?

你可以试试这个会复制javascript

的一些功能
<div th:each="comment : ${comments}">
 <button th:if="${comment.author.username == user.username}" class="btn btn-primary">Add Comment</button>
</div>

终于找到了可行的解决方案:

使用 Spring 的 Collection Selection 您可以检查列表是否包含具有特定 属性 值的元素。

<button th:unless="${comments.^[author.username == user.username]}"  class="btn btn-primary">Add Comment</button>