-1
Hy guys。發送Json對象到彈簧控制器
我有這樣的JS代碼,我在那裏創建一個對象通過Ajax功能發送給一個Spring控制器:
$('#eventsdatageneral').on('click', '.btn.btn-info', function(event)
{
var today_date = new Date().getTime();
var dataToSend = new Object();
dataToSend.dateToSend = today_date;
dataToSend.nameToSend = host_name;
dataToSend.typeToSend = type_name;
console.log(dataToSend);
event.preventDefault();
//here starts the code to sending data to Spring controller
$.ajax({
url: "../todaydatarecover.json",
type: "post",
data: dataToSend,
success : function() {
console.log("Invio riuscito.");
//console.log(moment(today_date).format('DD/MM/YYYY'));
}
});
});
這是控制器:
@PostMapping(value="/todaydatarecover.json")
@ResponseBody
public ModelAndView todayInfoAndIdRecover(ModelAndView model, HttpServletRequest request,
@RequestParam(name="dateToSend", required=false) long dateInBox,
@RequestParam(name="nameToSend", required=false) String nameInBox,
@RequestParam(name="typeToSend", required=false) String typeInBox) throws IOException
{
//First of all, we invoke getinfo methods to take info and id
Timestamp date = new Timestamp(dateInBox);
Events event = networks.getInfoandId(nameInBox, typeInBox, date);
//Second, we put this list in the model and set properties for jquery datatables
model.addObject("data", event);
//Verify id and info
System.out.println("The info is: " + event.getInfo());
System.out.println("The id is: " + event.getId());
//Finally, we return the model
return model;
}
當我嘗試執行,我得到了org.springframework.dao.EmptyResultDataAccessExceptionIncorrect result size: expected 1, actual 0
;但是,如果我通過MySQL客戶端查詢數據庫,我可以毫無問題地採取正確的結果。所以,有一行匹配我執行的查詢;這讓我覺得問題在於我如何創建Json對象和/或將其發送給Controller。
我的錯誤是什麼?
當發送帶有'data',它在要求的身體,你不能用'@ RequestParam'檢索數據信息。您需要使用'@ RequestBody'並創建並用三個變量對象。例如:'... todayInfoAndIdRecover(@RequestBody TodayData todayData ...' – Thoomas
您需要'POST'還是需要'GET'?您正在從'AJAX'發送請求,然後您正在使用'@ReqeustParam ''在服務器端,這是行不通的,如果你想使用'GET',那麼可以使用' –
@Rossi Robinson我需要Post。 –