【发布时间】:2020-05-18 18:17:53
【问题描述】:
我有一个控制器,它的方法也想绑定多个命令对象。当我通过 GET 调用该方法时,它工作得很好,并且两个对象都被绑定了。问题是如果我通过 POST 调用该方法,则只有第一个命令对象被绑定,而第二个命令对象被完全忽略。
简单示例:
def register(MembershipCommand cmd1, RegisterCommand cmd2) {
println(cmd1.email);
println(cmd2.pass);
respond([:]);
}
如果我打电话给/register?email=test&pass=test,那么cmd1 和cmd2 就会被填充
如果我用 POST 数据 {email:test,pass:test} 调用 /register,cmd1 会被填充,cmd2.pass 是 null。
有没有办法使用 POST 使这个数据绑定工作?我不能真正使用 GET,因为涉及文件上传,而且表格相当大。
我知道另一种选择是将每个对象的方法拆分为 2、1,并让我的表单分别提交给每个对象,但如果可以的话,我想避免这种情况。
有什么想法吗?
【问题讨论】:
标签: post grails data-binding grails-controller command-objects