Как получить доступ к пространству имен в доменном классе - PullRequest
2 голосов
/ 02 августа 2011

Я хотел бы использовать функцию g.message () в методе toString моего класса домена, но пространство имен g.-по умолчанию недоступно. Я сомневаюсь, что import g.* добьется цели.

Я уже знаю, что могу использовать функциональность messageSource, но было бы лучше использовать тот же синтаксис, что и в представлениях.

Ответы [ 2 ]

4 голосов
/ 02 августа 2011

Вы можете использовать:

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')

2 голосов
/ 02 августа 2011

Использование g.render в сервисе grails имеет несколько советов, как использовать «g:» в сервисе. Я не проверял это, но он должен работать в основном одинаково в классах домена, за одним важным исключением: класс домена не может использовать InitializingBean, поскольку он не является компонентом, находящимся в контексте приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...