我想知道是否有人有想法提供最佳方式 我的grails控制器之外的bindData()的功能。在我目前 我创建了几个groovy类来模拟返回的对象 api。在这些类中,我有一个静态方法,它解析xml并返回 该类的对象列表。我想跳过所有类型的铸造 通过在这些类中使用bindData方法来废话。有任何建议 如何做到这一点将不胜感激。
答案 0 :(得分:8)
我一直在寻找类似的解决方案,在服务类中使用bindData。我在JT's blog找到了一个解决方案。解决方案基本上是导入:
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,而不是对象数组。)