2016-06-12 53 views
0

使用國際化的消息,我試圖從messages.properties使用信息,並根據國際化文檔。它需要使用message(code: "some.properties.label", args: ['var1', 'vars2'])但它不起作用。始終得到:如何在一個Grails 3.1.7

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

在另一方面,當我使用它的工作messageSource.getMessage("code",null,null)

顯然我喜歡的文檔中的方法,因爲它是單刀直入,但由於某種原因,像相當人計算器me.Looks不起作用。所以Grails的大師們,這裏有什麼?

感謝

+0

你在哪裏使用它?在服務? – injecteer

+0

是使用它在一個service.thanks –

回答

1

根據堆棧跟蹤,似乎您試圖調用一個服務裏面message(code:'whatever' ....)方法。這就是爲什麼它不起作用,因爲它只適用於控制器和TagLibs (grails的魔術)

你應該看看到this答案,看到更多的解釋。

如果你真的想控制語法,你只需要創建一個具有相同參數的方法和調用爲messageSource服務。

+0

感謝@Joch,它看起來像我只需要堅持工作的messageSource的自動裝配。 –