在 Grails 项目中,我有一个命令对象来验证提交的表单。这个命令 obj.还有自定义验证器。数据通过 jQuery ajax ($.post) 提交。
我的问题是我现在如何将使用 jQuery Ajax 发送的数据映射到 Command 对象中列出的属性?
例如:
$.post('comment/save', {id: id, title: title});
然后在 Controller 中:
def save(saveCommand cmd){
if (!cmd.validate()){
...
}
}
class saveCommand {
Comment comment_id // maps to: params.comment_id send with ajax
String title // maps to: params.title send with ajax
// constraints
// validators
}
请您参考如下方法:
comment_id 属性应该从您从 jQuery 发送的参数映射中的“comment_id”参数绑定(bind),而不是像现在这样的“id”。
无论如何,我猜你有一个 Comment 域类,并且你希望从数据库中绑定(bind)这个实体。在这种情况下,您应该在参数名称中添加“.id”后缀。
$.post('comment/save', {"comment_id.id": id, "title": title});
PS:也许您想在命令类中将“comment_id”重命名为“comment”。这样做,您必须将 ajax 请求中的参数名称更改为“comment.id”。




