sndu
sndu

Reputation: 1033

Thymeleaf: How to loop through a list in inverse order?

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

Upvotes: 5

Views: 5757

Answers (2)

Shklyar
Shklyar

Reputation: 160

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>

Upvotes: 4

Metroids
Metroids

Reputation: 20487

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>

Upvotes: 6

Related Questions