【发布时间】:2013-07-25 23:11:50
【问题描述】:
从我的 JS 文件中,我发布了这个 JSON 数据。
myPayload[0].id=1&myPayload[0].name=Me&myPayload[0].pId=2&myPayload[0].pName=Dad
YUI 代码:
var formElements = YAHOO.util.Connect.setForm("myFormId");
alert("New form elements:" + formElements); // Alerting POST data as shown above
YAHOO.util.Connect.resetFormState();
YAHOO.util.Connect.asyncRequest("POST", "/mycontroller/save", {
cache : false,
success : function(res) {
alert(res.responseText);
},
failure : function(res) {
alert(res.responseText);
}
}, formElements);
控制器代码:
@RequestMapping(value = "/save", method=RequestMethod.POST)
@ResponseBody
public String saveData(ModelMap mm, @ModelAttribute("myPayload") MyBean bean, BindingResult errors) {
log.info("save:Called");
List<MyDTO> lst = bean.getList();
log.info("save:Number of records:" + lst.size());
return "Successfully Updated.";
}
豆码:
public class MyBean {
private List<MyDTO> myPayload = new AutoPopulatingList<MyDTO>(MyDTO.class);
public List<MyDTO> getList() {
return myPayload;
}
public void setList(List<MyDTO> mList) {
this.myPayload = mList;
}
}
列表仍然是空的。 bean 值也是空的。 我在这里做错了什么?
【问题讨论】:
-
您是否在表单中将命令名称指定为“myPayload”?
-
是的,在我的格式化程序中创建元素时,我以这种方式提供了 id。例如。 id:“myPayload[”+索引+“]。” + oColumn.getKey()。我从 JS 文件中的 setForm API 调用获取有效负载。我在我的问题中提到了这一点。在发送请求之前,我在 JS 中正确获取了所有 id:value 映射。但是在控制器中没有得到那些。有效载荷在传输过程中丢失。
标签: json spring-mvc