Comment puis-je faire ce qui suit (Java):
for(int i = 0; i < 81 ; i+=20){
//Should loop through 5 times!
}
à Thymeleaf?
J'ai essayé ça:
<option th:each="i : ${#numbers.sequence( 1, 81/20)}">
<p th:text="${ i }"></p> <!-- THIS loops 4 times, instead of 5 -->
</option>
Le problème est qu'il n'est pas aussi précis que le morceau de code Java. Comment faire?
Je suppose que cela est dû aux chiffres que vous utilisez. Pour votre Java, int i = 0; i <81; i + = 20 renverra i = 0, i = 20, i = 40, i = 60 et i = 80
cependant, les numéros de code suivants.sequence (1, 81/20)} devraient renvoyer les entiers de 1 à 4,05, soit 1, 2, 3 et 4.
La première boucle renvoie 5 résultats pour i, donc s'exécute 5 fois. la seconde ne renvoie que 4 résultats, donc s'exécute 4 fois. Je suggère d'exécuter votre séquence à partir de 0 pour renvoyer 5 résultats comme vous le souhaitez.
Si vous vouliez que votre code Java pour refléter le deuxième code, vous devriez le changer en: int i = 1; i <4.05; i + = 1
Pour le dire simplement, vous parcourez une boucle avec des nombres différents, je suggère de changer la deuxième instruction pour commencer à partir de 0.
Ajouter une étape à votre code est assez simple.
#{numbers.sequence(0, 81, 20)}
utilisez iterStat mot clé pour itérer. Exemple Si vous avez un tableau de chaînes et que vous l'itérez en utilisant thymeleaf.
<div th:each="str,iterStat : strings">
<span th:text="${str}"/><!--This will print the index value-->
<span th:text="${iterStat.index}"/><!--This will print the Index-->
</div>
La 1ère valeur est le début du comptage, la 2ème est la valeur maximale et la 3ème est la valeur incrémentale
${#numbers.sequence( 1, 4, 1)}