我正在尝试使用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,捕获的位置在哪里?
由于
答案 0 :(得分:1)
根据堆栈跟踪,您似乎正在尝试在服务中调用message(code:'whatever' ....)
方法。这就是为什么它不起作用,因为它只适用于控制器和TagLibs (grails'magic)。
您应该查看this回答,以了解更多解释。
如果您真的需要控制器语法,则只需创建一个具有相同参数的方法并调用messageSource服务。