假设您有一个包含(已解析)标题,正文,页脚模板的标准模板.
在body模板中定义了一个像$ subject这样的变量,你希望它也显示在头模板中.
在其他一些模板语言中,例如HTML :: Mason(基于perl),你首先要评估body模板以获取$ subject变量,但是将它的输出暂时存储在一个变量中,这样你的最终输出就会以正确的顺序结束(header,身体,页脚)
在速度上它看起来像
set($ body = #parse("body.vm"))
解析( "header.vm")
$ {机构}
解析( "footer.vm")
然而,这似乎不起作用,任何关于如何做到这一点的想法?
上述两种解决方案中的任何一种都可行.VelocityLayoutServlet解决方案需要一个名为Velocity Tools的额外软件包(也来自Velocity).我自己偏爱这种方法(和变体).
第三种方法只是将#parse放在引号内:
set ($body="#parse('body.vm')")
在#set中,评估双引号中的任何内容.单引号内的字符串按字面顺序传递.