为什么 Velocity 不替换值?
Why Velocity is not replacing values?
我的模板字符串如下,我想替换 $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 的值?
请帮忙。
提前致谢。
简答:
不要在上下文名称中使用 .
长答案:
Velocity 对 .
进行了特殊处理,我认为它实际上是在尝试调用
context.get("java").getLang().getObject().getProperty()
我不是 100% 确定语法但也许你可以尝试 $['java.lang.Object.property']
或类似的...可能最好检查速度文档以了解如何通过 string/map 查找访问上下文变量.
另一种选择是将地图添加到上下文并通过以下方式访问:
$map['java.lang.Object.property']
我的模板字符串如下,我想替换 $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 的值?
请帮忙。 提前致谢。
简答:
不要在上下文名称中使用 .
长答案:
Velocity 对 .
进行了特殊处理,我认为它实际上是在尝试调用
context.get("java").getLang().getObject().getProperty()
我不是 100% 确定语法但也许你可以尝试 $['java.lang.Object.property']
或类似的...可能最好检查速度文档以了解如何通过 string/map 查找访问上下文变量.
另一种选择是将地图添加到上下文并通过以下方式访问:
$map['java.lang.Object.property']