Thymeleaf: 如何倒序循环列表?

5
我有一个名为“notifications”的列表,并使用Thymeleaf的“each方法”逐一访问其元素。我可以成功地执行以下操作。
<li th:each="n : *{notifications}"> 
    <h4 type="text" th:text="*{n.message}"></h4>
</li>

注意:'message'是我需要从列表中检索的属性。

如何以相反的顺序访问元素?例如,如果这是我的当前输出,

Cat
Dog
Rat

我该如何获得这样的输出?
Rat
Dog
Cat

2
在服务器端翻转列表,也许。 - glytching
2个回答

6
我会尽可能在服务器端进行反转。如果您不想这样做,也许以下内容可以适用于您:
<li th:each="i : ${#numbers.sequence(notifications.size() - 1, 0, -1)}"> 
    <h4 type="text" th:text="${notifications[i].message}"></h4>
</li>

@Shyklar的下面的回答是增强版,大多数情况下您都会想使用它。 - Pete Storey

4
如果您已经使用'th:each',我想补充Metroids的答案。声明一个本地变量可能是有用的。这样,循环的内部部分就不需要更改。
<li th:each="i : ${#numbers.sequence(notifications.size() - 1, 0, -1)}"
     th:with="n=${notifications[i]}"> 
    <h4 type="text" th:text="${n.message}"></h4>
</li>

2
提供一些有关编程的内容翻译成中文。仅返回翻译后的文本:可以提供一点说明吗? :) - Alex.U
2
虽然这可能回答了问题,但最好添加一些描述说明如何帮助解决问题。请阅读 如何编写好答案 以了解更多信息。 - Roshana Pitigala
最初选择的答案实际上没有在循环内设置“n”对象,因此您在使用它的任何地方都必须切换到“notifications[i]”,这将是一项艰巨的工作。这个答案将“n”对象设置为那样,以便内部块与普通的th:each块相同。 - Pete Storey

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接