0
我有一個控制器類,它具有下面的映射,我試圖用ajax調用它。@ModelAttribute與@RequestParam一起使用時沒有任何價值
@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。
我不知道我在做什麼錯誤。我認爲我是正確的控制器部分,但我不知道我是否正確傳遞作業對象和字符串數組。任何指針?
你可以發佈你的'作業'類和發送的請求的實際正文? –
您正在發佈JSON不請求參數。 '@ ModelAttribute'只能用於不是JSON的請求參數。對於JSON,使用'@ RequestBody' –