web-dev-qa-db-ja.com

Grails-コントローラーからメッセージ値を取得する

GSPの外部のメッセージプロパティから値を取得するにはどうすればよいですか?たとえば、

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

しかし、コントローラーでは?

29
armandino

コントローラまたはtaglib内では、次を使用できます。

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())
  ...
}
47
fabien7474

検証タグlibをインポートして使用し、メッセージソースを取得することもできます。

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