我尝试在VM_global_library.vm文件中添加一堆#set($x=abc)
语句,但这些变量在我的VM模板中不可用。
我想为像图像的基本路径之类的东西设置一个全局变量。这可能吗?
答案 0 :(得分:2)
您可以将该变量添加到VelocityContext中,然后它将可供所有人使用,并将充当全局变量。
答案 1 :(得分:1)
你的VM_global_library.vm
应该只包含Velocity宏,我怀疑在宏之外声明的任何变量都会被忽略。
您可以创建一个单独的.vm
文件来保存所有全局变量,然后确保在需要它们的每个模板中#parse
(或者您可以编写一些代码来自动解析它) )。我以前扩展了VelocityLayoutServlet
以做类似的事情:首先合并我的“global-variables.vm
”将它们添加到Context中,然后继续并渲染视图。
如果您的全局变量只是简单的字符串,那么将它们放在属性文件中并让您的代码直接将它们推送到VelocityContext
中可能会更有效。
答案 2 :(得分:1)
如果使用VelocityTools创建Context,则可以轻松设置和管理全局数据。