我正在使用 grails 2.5.5,问题是当我使用命令对象时,我想更改使用 @BindUsing 注释获得的数据格式。
@Validatable
class FooCommand extends BarCommand{
@BindUsing({obj, source -> return source['foo'].collect{it['id']}})
List<Long> foo
static constraints = {foo(nullable:true)}
}
BindUsing 闭包永远不会被执行。问题是什么以及如何解决?
JSONData = {"foo":[
{'id':5},
{'id':4}
]
}
FooCommand fooCommand = FooCommand(JSONData)
fooCommand.validate()
编辑: 要明确:问题是数据从格式更改,从地图列表变为长列表。有没有办法用 BindUsing 来做到这一点,还是我每次都必须在控制器中做到这一点?