grails - que - Cómo acceder al espacio de nombres g. en una clase de dominio
palabras con g en frances y su significado (2)
Puedes usar:
class MyDomain {
def someMethod() {
def g = ApplicationHolder.application.mainContext.getBean( ''org.codehaus.groovy.grails.plugins.web.taglib.ApplicationTagLib'' )
return g.message(....)
}
}
o bien, puede obtener messageSource
directamente: ApplicationHolder.application.mainContext.getBean(''messageSource'')
Me gustaría hacer uso de la funcionalidad g.message () en el método toString de mi clase de dominio, pero el espacio de nombres g. no está accesible de forma predeterminada. Dudo que una import g.*
Haga el truco.
Ya sé que puedo usar la funcionalidad messageSource
, pero sería mejor usar la misma sintaxis que en las vistas.
El uso de g.render en un servicio de Grails tiene algunos consejos sobre cómo usar "g:" en un servicio. No he probado esto, pero debería funcionar casi igual en las clases de dominio, con una excepción importante: una clase de dominio no puede usar InitializingBean ya que no es un bean que reside en el contexto de la aplicación.