2011-11-01 53 views
3

我有出來這句話的價值:那我需要追加到另一個字符串如Velocity模板:我怎麼把#springMessage()的結果爲速度變量

#springMessage("count.french") 

#set ($theCount = '5467 ') 

然後基本上我需要做的這

#set ($countText = $theCount+#springMessage("count.french")) 

,但它不喜歡這一點。任何人有任何想法如何做到這一點?

+0

是否有錯誤或日誌消息? –

+0

@Dave #set($ countText = $ theCount +#springMessage(「count.french」)) 給出此錯誤(第90列是'#'字符在#set parens中的位置) - ERROR [ContainerBase] servlet家族樹的servlet.service()引發異常 org.apache.velocity.exception.ParseErrorException:遇到list.vm處的「#springMessage」[第71行,第90列] 期待以下之一: 「[」... 「{」 ... 「(」 ... ... ... 「真」 ... 「假」 ... ... ... ... 「{」... ... ' – Sen

+0

嘗試將宏結果與另一個'#set'設置爲一個臨時變量,並在字符串連接中使用該結果。 –

回答

5

創建一個臨時變量應爲如下(注意引號)一樣簡單:

#set ($test = "#springMessage($key)") 

然後,用這個但是你想,恩。連接到另一個字符串。

+0

我其實只是來這裏發佈我終於想到的答案。不錯的工作。謝謝。以下是我在其他人對我如何使用它感興趣的情況下所做的工作:#set($ var = $ var +「#springMessage('some.property.name')」) – Sen

2

嘗試以下操作:

#set($dynamicProp = '#set($countText = $theCount ' + '#springMessage(count.french' + ')') 
#evaluate($dynamicProp) 
+0

我無法得到它爲我工作。我很高興知道評估功能。感謝您的答覆。 – Sen

+0

沒問題。如果可能的話,你會想要避免它(文檔說明你應該只在必要時使用它)。我不太確定你需要做什麼來允許設置函數的簡單情況。 – Scott