Контекстное слияние во вложенных шаблонах скорости


У меня есть следующий шаблон скорости с именем 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 2

1 ответ:

Использование:

#parse("templates/exception.htm")

Вместо:

#include("templates/exception.vm")

#include включает ресурс, не интерпретируя его.