如何在grails 3.1.7中使用i18n消息

时间:2016-06-12 20:44:23

标签: grails

我正在尝试使用messages.properties中的消息并根据i18n文档。它需要使用message(code: "some.properties.label", args: ['var1', 'vars2']),但它不起作用。总是得到:

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)时,它可以正常工作。

显然我喜欢文档中的方法,因为它直截了当但由于某种原因对我不起作用。在stackoverflow上看起来很像人。那么grails gurus,捕获的位置在哪里?

由于

1 个答案:

答案 0 :(得分:1)

根据堆栈跟踪,您似乎正在尝试在服务中调用message(code:'whatever' ....)方法。这就是为什么它不起作用,因为它只适用于控制器和TagLibs (grails'magic)

您应该查看this回答,以了解更多解释。

如果您真的需要控制器语法,则只需创建一个具有相同参数的方法并调用messageSource服务。