Grails - получение значения сообщения от контроллера
Как я могу получить значение из свойств сообщения вне GSP? Например, эквивалент
<g:message code="some.message"/>
но в контроллере?
Ответ 1
Внутри контроллера или 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())
...
}
Ответ 2
Вы также можете импортировать тег проверки подлинности lib и использовать его для захвата источника сообщений.
import org.codehaus.groovy.grails.plugins.web.taglib.ValidationTagLib
def g = new ValidationTagLib()
g.message(error: error)