Existe-t-il un moyen de faire une boucle dans Thymeleaf sans liste?
Je voudrais essentiellement convertir cet extrait en Thymeleaf:
<jsp:useBean id="now" class="Java.util.Date" />
<fmt:formatDate var="year" value="${now}" pattern="yyyy" />
<c:forEach var="i" begin="0" end="99">
<form:option value="${year-i}" />
</c:forEach>
</form:select>
-- Mettre à jour --
J'ai décidé que c'est dans la ligne de la façon dont je veux le faire, mais je ne suis pas sûr de la syntaxe springEL:
<option th:each="i : ${#numbers.sequence( 1, 100)}" th:value="#{ T(Java.util.Date).getYear() - $i }">1</option>
Dans le cas où vous recherchez toujours la syntaxe SpEL correcte, voici ce qui a fonctionné pour moi:
<option th:each="i : ${#numbers.sequence( 1, 100)}"
th:value="${ (new org.joda.time.DateTime()).getYear() - i }"
th:text="${ (new org.joda.time.DateTime()).getYear() - i }">1</option>
Remarque:
th:text
pour définir le texte de l'option.Java.util.Date
ne me donnerait pas le résultat souhaitéLisez cette discussion sur Java.util.Date et getYear ()
Vous pouvez utiliser la variable d'itération thymleaf spéciale à l'intérieur de chaque bloc. Ce nom de variable spéciale est le nom de votre variable d'élément concaténé avec le mot clé 'Stat'
(ex: elt -> eltStat
) Cette variable vous donne de nombreuses informations liées à l'itération.
Vous pouvez également spécifier ce nom de variable après votre variable d'élément. Par exemple:
<tr th:each="prod,iterStat : ${prods}" th:class="${iterStat.odd}? 'odd'">
<td th:text="${prod.name}">Onions</td>
<td th:text="${prod.price}">2.41</td>
<td th:text="${prod.inStock}? #{true} : #{false}">yes</td>
</tr>
Plus d'informations dans la documentation officielle ci-dessous:
http://www.thymeleaf.org/doc/tutorials/2.1/usingthymeleaf.html#keeping-iteration-status