Question

Je souhaite ajouter un élément à la liste dans ma macro Velocity. Est-ce le seul moyen d'éviter que le texte "vrai" n'apparaisse dans la sortie Velocity?

#set($path = [])
#set($swallow = "a")

#set ($swallow = $path.add("blaablaa"))
Était-ce utile?

La solution

Je suis d'accord avec Terence Parr (père de StringTemplate ) qui a des commentaires pertinents dans une interview Artima et un bon article sur la séparation modèle-vue .

Les modèles doivent être limités à la présentation pure. Tout comme nous ne devrions pas inclure les détails de la couche de présentation dans le modèle, nous ne devrions pas inclure la manipulation de données dans nos modèles. Cela rend généralement la maintenance plus difficile et rend même plus difficile de savoir effectuer la maintenance.

Sur la base de ma propre expérience avec Velocity et StringTemplate, je vous suggère fortement de prendre le problème de votre question (artefacts de la manipulation de données rendant le modèle plus compliqué) comme un indice et de déplacer toutes les manipulations de structures de données dans la couche Java. .

Autres conseils

Oui, si vous voulez la fermer, alors #set est votre ami. Beaucoup de gens raccourcissent cela avec une macro comme celle-ci:

#macro( call $this )#set( $stfu = $this )#end

Ensuite, vous pouvez abréger en

#call( $path.add('blaablaa') )
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top