2016-10-03 15 views
0

解決されない:コード:メッセージは、私はこれが動作しない理由を理解しようとしています

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

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

このため、出力が(と仮定しているcontroller.computeLabel()を返します"computed.label"):

label.computed.label

どのように私はグラム強制することができます:コードATTRを解決するためのメッセージをibute?

ありがとうございました!

+0

'label.computed.label'は' message.properties'にありますか? – Armaiti

+0

はい、それは..ハードコードされていると動作します。 –

答えて

0

あなたがのステートメントで多くのことを想定している:contoller.computeLabelは()あなたのGSPのISN」内のようなコントローラをインライン呼び出し "computed.label"

を返すと仮定すると

あなたが期待するような行動をとることはありません。実際、多くのレベルで間違っています。 を実行してはいけません。

代わりに、どのコントローラがレンダリングしていても、GSPはモデルの情報を提供する必要があります。したがって、次のようなものになります。

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

このように問題に近づき、MVCを正しく使用することで問題は解決します。

状況の詳細についての情報がないと、より詳細な回答を得ることは不可能です。

0

私は今や気分が悪いです...ラベルが一致しませんでした。

正常に動作しています。

関連する問題