29

如何从 GSP 之外的消息属性中获取值?例如,相当于

<g:message code="some.message"/>

但在控制器中?

4

2 回答 2

47

在控制器或标签库中,您可以使用以下内容:

g.message(code: 'some.message')

但是,在域类或服务内部,您需要注入 messageSource 并从 Sping 类 AbstractMessageSource 调用 getMessage() 方法。此代码段向您展示了如何做到这一点:

import org.springframework.context.i18n.LocaleContextHolder as LCH
...
class MyServiceOrMyDomain {
  def messageSource 
  ...
  messageSource.getMessage(code, msgArgs, defaultMsg, LCH.getLocale())
  ...
}
于 2010-05-11T23:24:40.420 回答
11

您还可以导入验证标签库并使用它来获取消息源。

import org.codehaus.groovy.grails.plugins.web.taglib.ValidationTagLib
def g = new ValidationTagLib()
g.message(error: error)
于 2010-05-12T13:55:11.817 回答