【发布时间】:2011-12-02 05:27:29
【问题描述】:
我正在尝试通过 jQuery AJAX 将对象数组发送到 Spring 控制器。 这是javascript代码:
var data = new Array();
$.each(products, function (i) {
var temp = {};
temp.orpid = products[i].orpid;
temp.orpah = $('#orpah' + products[i].orpid).is(':checked');
temp.orpad = $('#orpad' + products[i].orpid).val();
data.push(temp);
});
$.postJSON(url + 'save',
data,
function(response) {
if (response.isAuthenticated && response.isAuthorized) {
if (response.hasErrors) {
$('#routeForm').setErrors(response.errors);
hideWait();
}
}
else
redirectToLogin();
});
发送到服务器的参数:
[{"orpid":10,"orpah":false,"orpad":""},{"orpid":11,"orpah":false,"orpad":""}]
问题是服务器响应 500 错误:
Can not deserialize instance of XXX out of START_ARRAY token
其中 xxx 是我的自定义表单类的名称。
谁能解释一下问题出在哪里? 谢谢
【问题讨论】:
-
听起来您的服务器端代码正在尝试从 JSON 输出中读取
XXX的实例,而不是XXX的数组。您可以发布使用的代码示例吗? -
您好,感谢您的回复。你可以在这里看到整个图片:stackoverflow.com/questions/7671930/…,除了那里描述的问题已经解决了。我将 ActionForm 移动到单独的类
-
马特 b,谢谢。你是对的。我将数组更改为对象,它工作正常:)谢谢!
-
干得好 nKognito。您能否自行发布该问题的答案,然后接受该答案以便我们结束该问题?此外,如果他们解决了您的问题,您需要接受之前问题的答案。
标签: java jquery ajax spring-mvc