Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Iterate in reverse in thymeleaf [duplicate]

I have a list called 'notifications' and I use Thymeleaf 'each method' to access its elements one by one. I can do this successfully as below.

<li th:each="n : *{notifications}"> 
    <h4 type="text" th:text="*{n.message}"></h4>
</li>

note: 'message' is the attribute I need to retrieve from the list.

How can I access the elements in the reverse order? For an example if this is my current output,

Cat
Dog
Rat

How can I get output as this?

Rat
Dog
Cat
like image 920
sndu Avatar asked Dec 17 '25 01:12

sndu


2 Answers

I would reverse it server side, if possible. If you don't want to do that, maybe something like this would work for you:

<li th:each="i : ${#numbers.sequence(notifications.size() - 1, 0, -1)}"> 
    <h4 type="text" th:text="${notifications[i].message}"></h4>
</li>
like image 93
Metroids Avatar answered Dec 19 '25 16:12

Metroids


If you already use 'th:each' I want to complement the Metroids answer. It may be useful to declare a local variable. Thus, the inner part of the loop will not require changes.

<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>
like image 24
Shklyar Avatar answered Dec 19 '25 15:12

Shklyar