在Apache Velocity 1.7中是否可以检查VelocityContext
中指定的所有键是否对模板有效?例如,假设我有一个模板card.vm
,它看起来像这样:
card {
type: CREDIT
company: VISA
name: "${firstName} ${lastName}"
}
如果我执行下面的代码,它应该抛出一个错误,因为cardNumber
不存在于card.vm
模板中:
VelocityContext context = new VelocityContext();
context.put("firstName", "tuk");
context.put("lastName", "man");
context.put("cardNumber", "1234");
StringWriter writer = new StringWriter();
t.merge(context, writer);
1条答案
按热度按时间nimxete21#
正如Christopher在针对您前面的问题时在Velocity邮件列表中提到的那样,您总是可以创建VelocityContext的子类来定制这样的行为。
例如,这将跟踪哪些键被放入上下文中,并跟踪上下文中使用了哪些键。然后在合并模板之后调用context.checkForUnreferencedValues()。
您可能需要根据向上下文添加键的帮助器对象以及您是否重用它来定制代码。