如何从GSP之外的消息属性中获取值?例如,相当于
<g:message code="some.message"/>
但在控制器中?
答案 0 :(得分:47)
在控制器或taglib中,您可以使用以下内容:
g.message(code: 'some.message')
但是,在域类或服务中,您需要从Sping类AbstractMessageSource注入messageSource并调用getMessage()方法。 此代码段显示了如何执行此操作:
import org.springframework.context.i18n.LocaleContextHolder as LCH
...
class MyServiceOrMyDomain {
def messageSource
...
messageSource.getMessage(code, msgArgs, defaultMsg, LCH.getLocale())
...
}
答案 1 :(得分:10)
您还可以导入验证标记lib并使用它来获取消息源。
import org.codehaus.groovy.grails.plugins.web.taglib.ValidationTagLib
def g = new ValidationTagLib()
g.message(error: error)