Question:有没有办法使用 request.JSON 数据进行自动命令对象绑定?
在我的 grails 控制器中给出这个简单的 Command 对象:
class ProfileCommand{
int id
String companyName
static constraints = {
companyName blank: false
id nullable: false
}
@Override
public String toString() {
return "ProfileCommand{id=$id, companyName='$companyName'}";
}
}
和我的控制器方法签名:
def update(ProfileCommand command) {...}
我怎样才能得到request.JSON
数据到我的命令对象中?
到目前为止,我能够做到这一点的唯一方法是在update()
方法,传入 request.JSON 作为构造函数参数:
def command = new ProfileCommand(request.JSON)
log.debug "Command object contents: $command"
上面的调试命令生成:
Command object contents: ProfileCommand{id=1, companyName='Blub Muckers'}
这正是我想要的(对奥利弗·泰恩斯的上述解决方案大喊大叫)。不幸的是,打电话command.validate()
创建命令后会产生以下异常:
Class org.codehaus.groovy.grails.web.taglib.exceptions.GrailsTagException
Message Tag [validate] is missing required attribute [form]
我使用的是 v2.0.3,uris 产生了与 v2.0.4 相同的异常。
UPDATE