Je passe un HashMap avec un mappage String à une ArrayList. La carte contient deux entrées, qui sont ArrayLists de la même longueur, et je veux les aligner horizontalement, donc j'ai pensé qu'une boucle foreach-range fonctionnerait mieux qu'une boucle foreach sur les entrées individuellement.Accès à ArrayList par index à l'aide de modèles de vélocité
J'ai:
#foreach($i in [1..$entry1.size()])
<li>
<h3>$entry1.get($i-1)</h3>
<video width="320" height="240" controls>
<source src="$entry2.get($i-1)" type="video/mp4">
</video>
</li>
#end
Velocity qu'afficher $ entry1.get (i-1 $) et prend entry2.get de $ ($ i-1) littéralement entry1.size $() fois, au lieu de injecter les valeurs des indices ArrayList correspondants.
La vitesse Documentation dit:
NOTE: Pour l'exemple ArrayList les éléments définis avec l'opérateur [..] sont accessibles en utilisant les méthodes définies dans la classe ArrayList. Ainsi, par exemple, vous pouvez accéder au premier élément ci-dessus en utilisant $ monkey.Say.get (0).
Et l'exemple était:
#set($monkey.Say = ["Not", $my, "fault"]) ## ArrayList
Suis-je accéder correctement ArrayList?
Je pense que vous avez besoin de mettre des espaces avant et après le tableau de bord, pour la soustraction de travailler. Voir aussi [this] (http://stackoverflow.com/questions/15448108/subtraction-is-not-working-with-velocity-template). – gerry