如何将参数从ajax传递到弹簧mvc控制器
问题描述:
嗨我想添加一个参数到ajax请求并将其发送回控制器。如何将参数从ajax传递到弹簧mvc控制器
你能帮我解决这个问题吗?我不明白为什么在控制器中我得到了startDate/stopDate参数的空值。
感谢
function getFilterParams() {
return {
"type" : "GET",
"url" : "results",
"async" : true,
"data" : {
"startDate" : $('#startDatePicker').find("input").val(),
"stopDate" : $('#stopDatePicker').find("input").val(),
success : function() {
alert("success ");
},
error : function() {
alert("error");
}
}
};
}
@RequestMapping(value = "/results", method = RequestMethod.GET)
public @ResponseBody DatatablesResponse<Results> findAllForDataTables(HttpServletRequest request) {
System.out.println(request.getParameter("startDate")); // This shows nothing
DatatablesCriterias dataTableCriterias = DatatablesCriterias.getFromRequest(request);
// Add the extra parameters into the DatatablesCriterias object to facilitate filtering
for (ColumnDef columnDef : dataTableCriterias.getColumnDefs()) {
switch (columnDef.getName()) {
case "startDate":
columnDef.setSearch(request.getParameter("startDate"));
break;
case "stopDate":
columnDef.setSearch(request.getParameter("stopDate"));
break;
}
}
DataSet<Results> results = this.resultsServiceimpl.findResultsWithDatatablesCriterias(dataTableCriterias);
return DatatablesResponse.build(results, dataTableCriterias);
}
答
能否请您检查these-
- 您可以检查的startDate和stopDate值正在进行的呼叫到控制器之前得到设定。
- 您也可以使用@RequestParam(“startDate”)而不是HttpServletRequest。请参阅Spring文档以了解更多信息 - http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#mvc-ann-requestparam
+0
我熟悉这一点。问题出在ajax调用中,它在发送给控制器之前没有设置该值。 – QGA
答
请尝试下面的代码。
@RequestMapping(value = "/results", method = RequestMethod.GET)
public @ResponseBody DatatablesResponse<Results> findAllForDataTables(HttpServletRequest request,@RequestParam("startDate") String startDate, @RequestParam("stopDate") String stopDate) {
System.out.println(startDate);
System.out.println(stopDate);
// other stuff
}
答
请尝试下面的代码。
@RequestMapping(value = "/results", method = RequestMethod.GET)
public @ResponseBody DatatablesResponse<Results> findAllForDataTables(
@RequestBody String startDate, @RequestBody String stopDate) {
}
添加实际发送到服务器的参数'startDate'和'stopDate' –