Скорость: Как определить глобальную переменную - PullRequest
2 голосов
/ 16 февраля 2011

Я попытался добавить несколько операторов #set($x=abc) в файл VM_global_library.vm, но эти переменные недоступны в моих шаблонах виртуальных машин.

Я бы хотел установить одну глобальную переменную для таких вещей, как базовый путь к изображениям и тому подобное.Возможно ли это?

Ответы [ 3 ]

2 голосов
/ 16 февраля 2011

Вы можете добавить эту переменную в VelocityContext, и тогда она будет доступна всем и будет действовать как глобальная переменная.

1 голос
/ 16 февраля 2011

Простота настройки и управления глобальными данными, если вы создаете свой контекст с помощью VelocityTools.

1 голос
/ 16 февраля 2011

Ваш VM_global_library.vm должен содержать только макросы Velocity, я подозреваю, что любые переменные, объявленные вне макроса, просто игнорируются.

Вы можете создать отдельный файл .vm, содержащий все ваши глобальные переменные, а затемубедитесь, что вы #parse это в каждом шаблоне, где они вам нужны (или вы могли бы написать код для автоматического его анализа).Ранее я расширил VelocityLayoutServlet, например, чтобы сделать что-то похожее: сначала слить мой "global-variables.vm", чтобы добавить их в контекст, а затем продолжить и визуализировать представление.

Если ваши глобальные переменныепросто простые строки, вероятно, было бы более эффективно поместить их в файл свойств и заставить ваш код вставлять их непосредственно в VelocityContext.

...