Grails 在控制器外部使用bindData方法

Grails 在控制器外部使用bindData方法,grails,Grails,我想知道是否有人对提供 grails控制器之外的bindData()功能。在我现在 我已经创建了几个groovy类来对 api。在这些类中,我有一个解析xml并返回 类的对象列表。我想跳过所有的类型转换 在这些类中使用bindData方法。有什么建议吗 如何做到这一点将不胜感激。我正在寻找类似的解决方案,在服务类中使用bindData。我找到了解决办法。解决方案基本上是导入: import org.codehaus.groovy.grails.web.metaclass.BindDynamicM

我想知道是否有人对提供 grails控制器之外的bindData()功能。在我现在 我已经创建了几个groovy类来对 api。在这些类中,我有一个解析xml并返回 类的对象列表。我想跳过所有的类型转换 在这些类中使用bindData方法。有什么建议吗
如何做到这一点将不胜感激。

我正在寻找类似的解决方案,在服务类中使用bindData。我找到了解决办法。解决方案基本上是导入:

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,而不是一个对象数组。)

如果在派生线程中使用它(至少对于executor插件),它似乎会失败,因为缺少请求:java.lang.IllegalStateException:找不到线程绑定的请求:您引用的是实际web请求之外的请求属性吗。。。