我的模板String如下所示,我想替换 $ java.lang.Object.property
的值 String tempString = "hi test message for velocity $java.lang.Object.property";
这里我将传递上下文地图如下
VelocityContext context = new VelocityContext();
context.put("java.lang.Object.property", "1");
StringWriter message = new StringWriter();
mVelocityEngine.evaluate( context, message, "LOG", tempString);
为什么速度引擎无法从模板中替换java.lang.Object.property的值?
请帮助。 提前谢谢。
答案 0 :(得分:2)
简答:
请勿在您的上下文名称
中使用.
长答案:
Velocity对.
有特殊待遇,我认为它实际上是试图打电话
context.get("java").getLang().getObject().getProperty()
我不是100%确定语法,但也许您可以尝试$['java.lang.Object.property']
或类似...最好检查一下速度文档,了解如何通过字符串/地图查找来访问上下文变量。< / p>
另一种选择是将地图添加到上下文并通过以下方式访问:
$map['java.lang.Object.property']