我想在我的域类的toString方法中使用g.message()功能,但默认情况下不能访问g.-namespace。
我怀疑import g.*
是否可以解决问题。
我已经知道我可以使用messageSource
功能,但使用与视图中相同的语法会更好。
答案 0 :(得分:4)
您可以使用:
class MyDomain {
def someMethod() {
def g = ApplicationHolder.application.mainContext.getBean( 'org.codehaus.groovy.grails.plugins.web.taglib.ApplicationTagLib' )
return g.message(....)
}
}
或者你可以直接获得messageSource
:ApplicationHolder.application.mainContext.getBean('messageSource')
答案 1 :(得分:2)
Using g.render in a grails service有一些提示如何在服务中使用“g:”。我没有对此进行测试,但它在域类中应该大致相同,但有一个重要的例外:域类不能使用InitializingBean,因为它不是驻留在应用程序上下文中的bean。