g:message 中的代码未解析

code in g:message is not resolved

我想了解为什么这不起作用:

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

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

这个输出是(假设 controller.computeLabel() returns "computed.label"):

label.computed.label

如何强制 g:message 解析代码属性?

谢谢!!

您对以下陈述做出了很多假设:

Assuming that contoller.computeLabel() returns "computed.label"

像在您的 GSP 中那样调用内联控制器不会按照您预期的方式运行。事实上,它在很多层面上都是错误的。 你不应该这样做

相反,任何呈现 GSP 的控制器都应该在模型中提供信息。所以,你最终会得到这样的结果:

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

以这种方式解决问题并正确使用 MVC 将解决您的问题。

如果没有更多关于您具体情况的信息,就不可能给您更详细的答案。

我现在觉得很傻...标签不匹配。

它工作正常。