2016-10-03 149 views
0

我試圖理解爲什麼這是行不通的:代碼:消息不解決

<g:set var="testvar" value="${'label.' + controller.computeLabel()}"/>

<g:message code="${testvar}"/>

這個輸出(假設controller.computeLabel()返回「computed.label」):

label.computed.label

我怎麼能動力G:消息來解決代碼ATTR ibute?

謝謝!

+0

'message.properties'中是否存在'label.computed.label'? – Armaiti

+0

是的,當硬編碼它工作.. –

回答

0

我們假定你是一個有很多的說法:

假設contoller.computeLabel()返回 「computed.label」

呼叫控制器內嵌一樣,在你的GSP ISN」不會像你期望的那樣行事。事實上,在許多層面上都是錯誤的。 你不應該這樣做

相反,無論控制器如何渲染,GSP都應該提供模型中的信息。所以,你最終會得到這樣的結果:

<g:set var="testvar" value="${'label.' + valueFromModel}"/> 

以這種方式來解決問題,正確使用MVC將解決您的問題。

沒有關於您的具體情況的更多信息,不可能給您一個更詳細的答案。

0

現在我覺得啞巴......標籤不匹配。

它工作正常。