Quel est le meilleur moyen pour accéder à un tableau à l'intérieur de la Vélocité?
J'ai un Java tableau, telles que:
String[] arr = new String[] {"123","doc","projectReport.doc"};
À mon avis, la voie naturelle pour l'accès serait:
#set($att_id = $arr[0])
#set($att_type = $arr[1])
#set($att_name = $arr[2])
Mais qu'il ne fonctionne pas. Je suis venu avec cette solution de contournement. Mais un peu trop de code pour une telle tâche facile.
#set($counter = 0)
#foreach($el in $arr)
#if($counter==0)
#set($att_id = $el)
#elseif($counter==1)
#set($att_type = $el)
#elseif($counter==2)
#set($att_name = $el)
#end
#set($counter = $counter + 1)
#end
Est-il un autre moyen?
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser la Vitesse 1.6: pour un tableau nommé
$array
, on peut tout simplement faire$array.get($index)
.Dans la prochaine Vitesse de 1.7, on va être capable de faire
$array[$index]
(ainsi que$list[$index]
et$map[$key]
).Vous pouvez rassembler le tableau dans un
List
à l'aide deTableaux.asList(T... a)
. Le nouvel objet de la Liste est soutenue par le tableau d'origine afin de ne pas inutilement allouer une copie. Même les modifications apportées à la nouvelle Liste se propagent à la baie.Ensuite, vous pouvez utiliser
$list.get(int index)
pour obtenir vos objets en Vitesse.Si vous avez besoin pour obtenir juste un ou deux objets à partir d'un tableau, vous pouvez également utiliser
Array.obtenir(un Objet array, int index)
pour obtenir un élément d'un tableau.
À mon avis, la voie naturelle pour l'accès serait:
La valeur de ce qui peut être obtenir l'aide de
$array.get("arr", 1)
car il n'y a pas de moyen direct d'obtenir la valeur de tableau comme$att_id = $arr[0]
vitesse.J'espère que ça fonctionne 🙂
il y a un implicite contre $velocityCount qui commence avec la valeur 1 si vous n'avez pas à créer votre propre compteur.
Brian réponse est tout à fait exact, bien que vous aimeriez savoir que les prochaines Vitesse de 1.6 a un soutien direct pour les tableaux; voir la Vitesse de la documentation pour plus d'informations.
Vitesse de 1,6
http://velocity.apache.org/engine/1.7/user-guide.html
J'ai fini par utiliser la ListTool de l'velocity-tools.jar. Il a des méthodes pour accéder à une multitude d'éléments et bénéficiez également de sa taille.
Je a la même question, et il a obtenu répondu sur un autre fil
Tableau d'indexation dans la Confluence /Vitesse de modèles