Thymeleaf - 在集合选择中使用局部变量
Thymeleaf - Use local variable in Collection Selection
在我的页面上有一个评论列表,每个评论都有一些评论。
从我的后端我得到所有评论的列表,以及所有评论的列表。
每条评论都有review
属性,决定了它属于哪个评论
在每个评论下,我现在正在尝试显示相关的评论。
为此,我试图过滤并循环遍历我的 comments
列表中的所有评论,其中父评论的 ID (comment.review.getID()
) 等于当前评论的 ID (review.getID()
) .
这是我正在尝试的方法,但它不起作用。:
<div class="review" th:each="review : ${reviews}">
<div class="review-comments" th:with="reviewID=${review.getID()}">
<div class="comment" th:each="comment : ${comments.?[#this.review.getID() eq reviewID]}">
它抛出这个错误:
Property or field 'reviewID' cannot be found on object of type 'de.firefuro.forum.entity.Comment'
那么如何将评论的评论 ID 与局部变量 reviewID
(或与局部变量 review.getID()
)进行比较?
我也试过了
<div class="review" th:each="review : ${reviews}">
<div class="review-comments">
<div class="comment" th:each="comment : ${comments.?[#this.review.getID() eq review.getID()]}">
但这也不起作用。它没有过滤任何东西。可能是因为它认为 review
我的意思是 comment.review。我无法使用本地 review
变量。
我该怎么做?
假设 Comment
class 有 content
字段,我想这将是正确的语法:
<div th:each="review : ${reviews}">
<div th:text="${review.id}"></div>
<div th:each="comment : ${comments.?[review.id == __${review.id}__]}">
<div th:text="${comment.content}"></div>
</div>
</div>
在我的页面上有一个评论列表,每个评论都有一些评论。
从我的后端我得到所有评论的列表,以及所有评论的列表。
每条评论都有review
属性,决定了它属于哪个评论
在每个评论下,我现在正在尝试显示相关的评论。
为此,我试图过滤并循环遍历我的 comments
列表中的所有评论,其中父评论的 ID (comment.review.getID()
) 等于当前评论的 ID (review.getID()
) .
这是我正在尝试的方法,但它不起作用。:
<div class="review" th:each="review : ${reviews}">
<div class="review-comments" th:with="reviewID=${review.getID()}">
<div class="comment" th:each="comment : ${comments.?[#this.review.getID() eq reviewID]}">
它抛出这个错误:
Property or field 'reviewID' cannot be found on object of type 'de.firefuro.forum.entity.Comment'
那么如何将评论的评论 ID 与局部变量 reviewID
(或与局部变量 review.getID()
)进行比较?
我也试过了
<div class="review" th:each="review : ${reviews}">
<div class="review-comments">
<div class="comment" th:each="comment : ${comments.?[#this.review.getID() eq review.getID()]}">
但这也不起作用。它没有过滤任何东西。可能是因为它认为 review
我的意思是 comment.review。我无法使用本地 review
变量。
我该怎么做?
假设 Comment
class 有 content
字段,我想这将是正确的语法:
<div th:each="review : ${reviews}">
<div th:text="${review.id}"></div>
<div th:each="comment : ${comments.?[review.id == __${review.id}__]}">
<div th:text="${comment.content}"></div>
</div>
</div>