Grails - получение значения сообщения от контроллера - PullRequest
29 голосов
/ 12 мая 2010

Как я могу получить значение из свойств сообщения за пределами GSP? Например, эквивалент

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

а в контроллере?

Ответы [ 2 ]

47 голосов
/ 12 мая 2010

Внутри контроллера или taglib вы можете использовать следующее:

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

Однако внутри классов или служб домена вам необходимо внедрить messageSource и вызвать метод getMessage () из класса Sping AbstractMessageSource. Этот фрагмент показывает, как это сделать:

import org.springframework.context.i18n.LocaleContextHolder as LCH
...
class MyServiceOrMyDomain {
  def messageSource 
  ...
  messageSource.getMessage(code, msgArgs, defaultMsg, LCH.getLocale())
  ...
}
10 голосов
/ 12 мая 2010

Вы также можете импортировать проверочный тег lib и использовать его для получения источника сообщения.

import org.codehaus.groovy.grails.plugins.web.taglib.ValidationTagLib
def g = new ValidationTagLib()
g.message(error: error)
...