在 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”。


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!