【问题标题】:code in g:message is not resolvedg:message 中的代码未解析
【发布时间】:2016-10-03 18:56:15
【问题描述】:

我试图理解为什么这不起作用:

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

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

输出是(假设 controller.computeLabel() 返回“computed.label”):

label.computed.label

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

谢谢!!

【问题讨论】:

  • label.computed.label 是否存在于message.properties 中?
  • 是的,它确实如此......当硬编码时它可以工作......

标签: grails internationalization gsp


【解决方案1】:

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

假设 contoller.computeLabel() 返回“computed.label”

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

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

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

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

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

【讨论】:

    【解决方案2】:

    我现在感觉很蠢……标签不匹配。

    一切正常。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多