2015-10-19 77 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

感謝蘭斯求助 –