2015-10-06 114 views
1

嗨我想添加一个参数到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); 
    } 
+0

添加实际发送到服务器的参数'startDate'和'stopDate' –

回答

0

请尝试下面的代码。

@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 
    } 
+0

感谢您的反馈,这没有显示任何内容。我需要弄清楚为什么 – QGA

+0

我认为如果你序列化并通过它的方式将有所帮助。 ('url',$('formName/Id')。serialize(),json otherFields)并将值作为隐藏字段在页面中将获取值到您的控制器。 http://digitaljoel.nerd-herders.com/2011/01/29/ajax-post-to-spring-mvc-controller/ – Rob

0

请尝试下面的代码。

@RequestMapping(value = "/results", method = RequestMethod.GET) 
public @ResponseBody DatatablesResponse<Results> findAllForDataTables(
       @RequestBody String startDate, @RequestBody String stopDate) { 

} 
相关问题