如何访问域类中的g.-namespace

时间:2011-08-02 06:43:50

标签: grails internationalization

我想在我的域类的toString方法中使用g.message()功能,但默认情况下不能访问g.-namespace。 我怀疑import g.*是否可以解决问题。

我已经知道我可以使用messageSource功能,但使用与视图中相同的语法会更好。

2 个答案:

答案 0 :(得分:4)

您可以使用:

class MyDomain {

  def someMethod() {
    def g = ApplicationHolder.application.mainContext.getBean( 'org.codehaus.groovy.grails.plugins.web.taglib.ApplicationTagLib' )
    return g.message(....)
  }

}

或者你可以直接获得messageSourceApplicationHolder.application.mainContext.getBean('messageSource')

答案 1 :(得分:2)

Using g.render in a grails service有一些提示如何在服务中使用“g:”。我没有对此进行测试,但它在域类中应该大致相同,但有一个重要的例外:域类不能使用InitializingBean,因为它不是驻留在应用程序上下文中的bean。