我有一个具有以下映射的控制器类,我正在尝试用 ajax 调用它。
@RequestMapping(value = "/jobs", method = RequestMethod.POST, headers = "Accept=*/*")
@ResponseBody
public String associate(@ModelAttribute ("job") Job job, @RequestParam(value="ips") String[] ips) {
logger.debug("associate: No of IP Ranges: {} ", ips.length);
logger.debug("associate: jobSchedule: {} " , job.getScanId());
}
Jquery Ajax 调用如下:
$.ajax({
type: 'POST',
url: urlstr,
data : {job:job ,ips: ipIds.toString()}
success: function(data, textStatus, jqXHR) {
if(data != ""){
if(data != ""){
alert(data);
location = ctx + '/rest/settings';
}
}
},
error: function(jqXHR, textStatus, errorThrown) {
alert('There was an error in scheduling.' + errorThrown );
}
});
它能够获取 ips 长度,但 job.getScanId() 返回 null。但是当我在 jsp 中发出警报时,它会从我的 json 作业对象中打印扫描 ID。
我不知道我犯了什么错误。我想我在控制器部分是对的,但我不知道我是否正确传递了作业对象和字符串数组。任何指针?