2 votes

Vélocité : Comment définir une variable globale

J'ai essayé d'ajouter un tas de #set($x=abc) dans le fichier VM_global_library.vm, mais ces variables ne sont pas disponibles dans mes modèles VM.

J'aimerais définir une seule variable globale pour des choses comme le chemin de base des images et autres. Cela est-il possible ?

2voto

Faisal Feroz Points 4926

Vous pouvez ajouter cette variable au VelocityContext et elle sera alors disponible pour tous et agira comme une variable globale.

1voto

Will Prescott Points 2451

Votre VM_global_library.vm ne devrait contenir que des macros de vélocité, je soupçonne que toutes les variables déclarées en dehors d'une macro sont simplement ignorées.

Vous pourriez créer un .vm qui contient tous vos globaux, et ensuite assurez-vous que vous #parse dans tous les modèles où vous en avez besoin (ou vous pourriez écrire un code pour l'analyser automatiquement). J'ai précédemment étendu le VelocityLayoutServlet par exemple pour faire quelque chose de similaire : fusionner mes " global-variables.vm "pour les ajouter au contexte, puis continuer et rendre la vue.

Si vos globaux ne sont que de simples chaînes de caractères, il serait probablement plus efficace de les placer dans un fichier de propriétés et de faire en sorte que votre code les intègre directement dans le fichier de propriétés. VelocityContext .

1voto

Nathan Bubna Points 3779

Il est facile de mettre en place et de gérer des données globales si vous créez votre Contexte avec VelocityTools.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X