Использование метода bindData вне контроллера - PullRequest
6 голосов
/ 22 декабря 2009

Мне было интересно, есть ли у кого-нибудь идея, как лучше всего функциональность bindData () за пределами моих контроллеров Grails. В моем нынешнем Я создал несколько классных классов для моделирования объектов, возвращаемых api. В этих классах у меня есть статический метод, который анализирует XML и возвращает Список объектов класса. Я хотел бы пропустить все типы кастинга ерунда с помощью метода bindData в этих классах. Любые предложения по как это сделать будет оценено.

1 Ответ

8 голосов
/ 20 декабря 2010

Я искал подобное решение, чтобы использовать bindData в классе обслуживания. Я нашел решение в блоге JT . Решение в основном для импорта:

import org.codehaus.groovy.grails.web.metaclass.BindDynamicMethod

затем добавьте это к своему коду:

def foo = new Foo()
BindDynamicMethod bind = new BindDynamicMethod()
def args =  [ foo, params, [exclude:['name', 'mail']] ] // for example
bind.invoke( foo, 'bind', (Object[])args)

Приведение (Object []) необходимо для совместимости с Groovy / Java. (Groovy рассматривает объект «args» как ArrayList, а не как массив объектов.)

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