我对web开发是个新手。我需要将HTTP请求中的参数从jquery datatable ajax调用传递到spring引导控制器。
目前,我正在URL中传递参数,但这是一个安全问题。所以我尝试在HTTP请求中传输。
这是我现在的jquery代码
$("button#search").click(function() {
var name = $("#name").val();
var age = $("#age").val();
var url = "/searchCustomer/search?name="+name+"&age="+age;
$('#customerTable').DataTable({
"type": "GET",
"ajax": url,
"cache": false,
"bDestroy":true,
"aLengthMenu": [20, 50, 70, 100],
"columns":[
{"data": "customerid" },
{"data": "name"},
{"data": "mobilenumber"},
{"data": "status"},
],
"language": {
"lengthMenu": "| View _MENU_ records per page",
"zeroRecords": "No matching records found",
"infoEmpty": "No records available",
"infoFiltered": "(filtered from _MAX_ total records)"
},
"pagingType": "full_numbers",
});
});````
Java code:
````@RequestMapping(value = "/searchCustomer/search", method = RequestMethod.GET)
public @ResponseBody JSONObject getCustomers(@RequestParam(required = false) String name,@RequestParam(required = false) String age, Model model) {
List<Map<String, Object>> list1 = new ArrayList<Map<String, Object>>();
JSONObject ajson = new JSONObject();
//Map<String, Object> map = new LinkedHashMap<String, Object>();
//my logic here
//list1.add(map);
ajson.put("data", list1);
retrun json;
}````
我希望在Controller中从HTTP请求中获取参数。
发布于 2019-05-20 00:48:48
根据您在注释中的请求,以下代码将实现您的目标。请注意对DataTables()
使用了data
参数。
$("button#search").click(function() {
$('#customerTable').DataTable({
ajax: "/searchCustomer/search",
data: {
name: $("#name").val(),
age: $("#age").val()
}
cache: false,
bDestroy: true,
aLengthMenu: [20, 50, 70, 100],
columns: [{
data: "customerid"
},
{
data: "name"
},
{
data: "mobilenumber"
},
{
data: "status"
},
],
language: {
lengthMenu: "| View _MENU_ records per page",
zeroRecords: "No matching records found",
infoEmpty: "No records available",
infoFiltered: "(filtered from _MAX_ total records)"
},
pagingType: "full_numbers",
});
});
就您的Java而言,您还没有提供足够的细节,但是按照使用Spring.io构建RESTful服务的Spring指南,解决方案很简单。您的控制器代码将如下所示:
@PostMapping("/search")
Customer search(@RequestBody SearchParams searchParams ) {
return repository.findOne(searchParams);
}
https://stackoverflow.com/questions/56209498
复制相似问题