2016-06-12 5 views
0

Ich versuche, Nachrichten aus den messages.properties und entsprechend der i18n Dokumentation zu verwenden. Es dauert, um die message(code: "some.properties.label", args: ['var1', 'vars2']) zu verwenden, aber es funktioniert nicht. Immer bekommen:Wie i18n Nachricht in einem Grails verwenden 3.1.7

Caused by: groovy.lang.MissingMethodException: No signature of method: com.project.MainService.message() is applicable for argument types: (java.util.LinkedHashMap)

Auf der anderen Seite, wenn ich die messageSource.getMessage("code",null,null) verwenden es funktioniert.

Offensichtlich mag ich die Methode in der Dokumentation, weil es direkt auf den Punkt ist, aber aus irgendeinem Grund funktioniert nicht für mich.Sieht wie für ziemlich Leute auf Stackoverflow. Also Grails Gurus, wo ist der Haken?

Dank

+0

wo verwenden Sie es? in einem Dienst? – injecteer

+0

Ja, benutze es in einem service.thanks –

Antwort

1

Nach dem Stacktrace, es scheint, dass Sie versuchen, die message(code:'whatever' ....) Methode in einem Dienst aufrufen. Aus diesem Grund funktioniert es nicht, da es nur auf Controllern und TagLibs (Grails Magic) funktioniert.

Sie sollten einen Blick auf this beantworten, um weitere Erklärungen zu sehen.

Wenn Sie die Controller-Syntax wirklich wollen, müssen Sie nur eine Methode mit den gleichen Parametern erstellen und den messageSource Service aufrufen.

+0

Dank @Joch, es sieht aus wie ich nur an der Autowirkung der MessageSource, die funktioniert hat, zu bleiben. –