2015-10-19 64 views
1

我的模板字符串是如下,我想更换$ java.lang.Object.property为什么Velocity不会取代价值?

 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的值?

请帮忙。 在此先感谢。

回答

2

答案很简单:

不要在你的上下文名称.

龙答:

速度有特殊待遇.,我认为它实际上是试图调用

context.get("java").getLang().getObject().getProperty() 

我不是100%确定的语法,但也许你可以尝试$['java.lang.Object.property']或类似的...可能最好检查速度文档以了解如何通过字符串/地图查找来访问上下文变量。

另一种选择是添加地图通过上下文和访问:

$map['java.lang.Object.property'] 
+0

感谢兰斯求助 –

相关问题