嵌套速度模板中的上下文合并

时间:2014-04-11 09:16:28

标签: java velocity

我有以下名为exception.vm的速度模板:

<span class="classname">$s.getClassName().</span>

我将其包含在另一个名为cause.vm的模板中:

#include("templates/exception.vm")
<span class="classname">$s.getCause()</span>

当我将其与上下文合并时:

Template tm = VelocityUtil.getTemplate("templates/cause.htm");
Context c = new VelocityContext();
c.put("s", new RuntimeException());
StringWriter sw = new StringWriter(100);
tm.merge(c, sw);

$s.getCause()被正确解释,但$s.getClassName()未得到解释,并以字面值打印。

为什么会这样?

1 个答案:

答案 0 :(得分:5)

使用:

#parse("templates/exception.htm")

而不是:

#include("templates/exception.vm")

#include包含资源而不解释它。