2011-02-16 108 views
2

我試着在VM_global_library.vm文件中添加一堆#set($x=abc)語句,但這些變量在我的VM模板中不可用。速度:如何定義全局變量

我想設置一個單一的全局變量,像基本路徑圖像等。這可能嗎?

回答

1

您的VM_global_library.vm應該只包含Velocity宏,我懷疑任何在宏外聲明的變量都被忽略。

您可以創建一個單獨的.vm文件來保存所有的全局變量,然後確保您在每個需要它們的模板中都有#parse它(或者您可以編寫一些代碼來自動解析它)。例如,我之前擴展VelocityLayoutServlet來做類似的事情:首先合併我的「global-variables.vm」,將它們添加到上下文中,然後繼續並呈現視圖。

如果您的全局變量只是簡單的字符串,將它們放在屬性文件中並讓您的代碼直接將它們推送到VelocityContext中可能會更有效。

2

您可以將該變量添加到VelocityContext中,然後將其提供給每個人,並將充當全局變量。

1

如果使用VelocityTools創建Context,則可以輕鬆設置和管理全局數據。