我試圖理解爲什麼這是行不通的:代碼:消息不解決
<g:set var="testvar" value="${'label.' + controller.computeLabel()}"/>
<g:message code="${testvar}"/>
這個輸出(假設controller.computeLabel()返回「computed.label」):
label.computed.label
我怎麼能動力G:消息來解決代碼ATTR ibute?
謝謝!
我試圖理解爲什麼這是行不通的:代碼:消息不解決
<g:set var="testvar" value="${'label.' + controller.computeLabel()}"/>
<g:message code="${testvar}"/>
這個輸出(假設controller.computeLabel()返回「computed.label」):
label.computed.label
我怎麼能動力G:消息來解決代碼ATTR ibute?
謝謝!
我們假定你是一個有很多的說法:
假設contoller.computeLabel()返回 「computed.label」
呼叫控制器內嵌一樣,在你的GSP ISN」不會像你期望的那樣行事。事實上,在許多層面上都是錯誤的。 你不應該這樣做。
相反,無論控制器如何渲染,GSP都應該提供模型中的信息。所以,你最終會得到這樣的結果:
<g:set var="testvar" value="${'label.' + valueFromModel}"/>
以這種方式來解決問題,正確使用MVC將解決您的問題。
沒有關於您的具體情況的更多信息,不可能給您一個更詳細的答案。
現在我覺得啞巴......標籤不匹配。
它工作正常。
'message.properties'中是否存在'label.computed.label'? – Armaiti
是的,當硬編碼它工作.. –