Grails: obtener un valor de mensaje del controlador
messages (2)
¿Cómo puedo obtener un valor de las propiedades del mensaje fuera de los GSP? Por ejemplo, el equivalente de
<g:message code="some.message"/>
pero en un controlador?
Dentro de un controlador o un taglib, puede usar lo siguiente:
g.message(code: ''some.message'')
Sin embargo, dentro de clases de dominio o servicios, necesita inyectar messageSource y llamar al método getMessage () de la clase Sping AbstractMessageSource. Este fragmento muestra cómo hacer eso:
import org.springframework.context.i18n.LocaleContextHolder as LCH
...
class MyServiceOrMyDomain {
def messageSource
...
messageSource.getMessage(code, msgArgs, defaultMsg, LCH.getLocale())
...
}
También puede importar la etiqueta de validación lib y usarla agarrar el origen del mensaje.
import org.codehaus.groovy.grails.plugins.web.taglib.ValidationTagLib
def g = new ValidationTagLib()
g.message(error: error)