【发布时间】:2013-01-22 13:01:00
【问题描述】:
我有一个简单的 POJO Java 类(getter 和 setter 没有显示)
public class VacationInfo {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Temporal(TemporalType.TIMESTAMP)
private Date vacationFrom;
@Temporal(TemporalType.TIMESTAMP)
private Date vacationTo;
,带有下一个方法的 Spring MVC 控制器
@RequestMapping(value = "updateVacations", method = RequestMethod.POST)
public String updateVacations(@RequestParam VacationInfo[] vacationInfos) {
...
}
和 jQuery 发布请求
$.ajax({
type: "POST",
url: "updateVacations",
dataType: 'json',
data: vacationInfos
});
其中“vacationInfos”是一个包含 JSON 对象的数组,代表 VacationInfo 类:
[
{
vacationFrom: "01-01-2013",
vacationTo: "01-01-2013"
},
{
vacationFrom: "01-01-2013",
vacationTo: "01-01-2013"
}
]
但是当我请求时 - 我收到了 HTTP 400 错误。
【问题讨论】:
-
在 jQuery AJAX 中,
dataType选项表示来自服务器的预期响应类型,而不是发送的数据类型。此外,data选项预计要么是键值对的对象,要么是请求的查询字符串;我认为传递对象数组不会得到正确处理。您可以尝试:`data: {vacationInfos :vacationInfos},然后修改您的服务器端代码以使用该单个参数。 -
我之前尝试过这样做,但没有成功。我更改了我的 ajax 请求数据,但我不明白 - 如何更改控制器方法以使其工作。
标签: java jquery spring-mvc