我试图理解为什么这不起作用:
<g:set var="testvar" value="${'label.' + controller.computeLabel()}"/>
<g:message code="${testvar}"/>
这个的输出是(假设controller.computeLabel()返回&#34; computed.label&#34;):
label.computed.label
如何强制g:message解析代码属性?
谢谢!!
答案 0 :(得分:0)
你对以下声明做了很多假设:
假设contoller.computeLabel()返回&#34; computed.label&#34;
像GSP一样调用内联控制器并不会按照您的预期行事。事实上,在许多层面上都是错误的。 你不应该这样做。
相反,无论控制器呈现GSP,都应该在模型中提供信息。所以,你最终会得到这样的东西:
<g:set var="testvar" value="${'label.' + valueFromModel}"/>
以这种方式解决问题,并正确使用MVC将解决您的问题。
如果没有关于您的具体情况的更多信息,则无法给出更详细的答案。
答案 1 :(得分:0)
我现在感到愚蠢......标签不匹配。
工作正常。