Comment puis-je obtenir une valeur à partir des propriétés de message en dehors des GSP? Par exemple, l'équivalent deGrails - Obtenir une valeur de message du contrôleur
<g:message code="some.message"/>
mais dans un contrôleur?
Comment puis-je obtenir une valeur à partir des propriétés de message en dehors des GSP? Par exemple, l'équivalent deGrails - Obtenir une valeur de message du contrôleur
<g:message code="some.message"/>
mais dans un contrôleur?
l'intérieur d'un contrôleur ou un taglib, vous pouvez utiliser les éléments suivants:
g.message(code: 'some.message')
Cependant, à l'intérieur des classes de domaine ou de services, vous avez besoin d'injecter MessageSource et appeler la méthode getMessage() de la classe de Sping AbstractMessageSource. Cet extrait vous montre comment faire:
import org.springframework.context.i18n.LocaleContextHolder as LCH
...
class MyServiceOrMyDomain {
def messageSource
...
messageSource.getMessage(code, msgArgs, defaultMsg, LCH.getLocale())
...
}
Vous pouvez également importer la balise de validation lib et de l'utiliser de saisir la source du message.
import org.codehaus.groovy.grails.plugins.web.taglib.ValidationTagLib
def g = new ValidationTagLib()
g.message(error: error)
Mais calcule-t-il les paramètres régionaux de la requête en cours? – fabien7474
@fabien Oui ça fonctionne – vickirk
'g.message' semble être un meilleur moyen que' messageSource' car il nécessite moins de code, vous n'avez pas besoin de gérer les exceptions et vous savez déjà [comment l'utiliser] (http: // grails.org/doc/latest/ref/Tags/message.html). –
Une réponse incroyable! Merci beaucoup! – Topera
Juste pour aider quelqu'un qui pourrait avoir le même problème que moi - myArgs doit être un tableau d'objets, par exemple: messageSource.getMessage ("some.code", ["arg1"] comme Object [], " par défaut ", LCH.getLocale()) – MBozic
J'utilise grails 2.1. Il semble que vous ne puissiez pas utiliser l'espace de noms g dans les contrôleurs. L'utilisation du message (code: "") fait le travail. Peut-être que vous avez seulement besoin de l'espace de noms g pour taglibs maintenant. http://grails.org/doc/2.1.0/guide/single.html#i18n –