我编写了一个在客户端使用JQuery DataTable的简单Spring MVC Web应用程序。 DataTable使用服务器端处理模式。 DataTable使用参数发出请求(在我的例子中):
draw:1
columns[0][data]:name
columns[0][name]:
columns[0][searchable]:true
columns[0][orderable]:true
columns[0][search][value]:
columns[0][search][regex]:false
columns[1][data]:type
columns[1][name]:
columns[1][searchable]:true
columns[1][orderable]:true
columns[1][search][value]:
columns[1][search][regex]:false
columns[2][data]:action
columns[2][name]:
columns[2][searchable]:true
columns[2][orderable]:true
columns[2][search][value]:
columns[2][search][regex]:false
order[0][column]:0
order[0][dir]:asc
start:0
length:10
search[value]:
search[regex]:false
我不知道如何解析columns[i][data]
,columns[i][name]
,columns[i][searchable]
等参数。原因是,因为我不知道有多少表格列我会的。如何解决这个问题呢?
这是我的Spring控制器:
@RequestMapping(value = "/getImageWrappers", method = RequestMethod.POST)
public String getImageWrappers(@RequestParam Integer draw,
@RequestParam Integer start,
@RequestParam Integer length,
@RequestParam(value = "search[value]") String searchText){
}
和DataTable配置:
$('#imageWrapperTable').DataTable({
columns:[
{"data" : "name"},
{"data" : "type"},
{"data" : "action"}
],
"processing": true,
serverSide: true,
ajax: {
url: '/getImageWrappers.json',
type: 'POST'
}
});
答案 0 :(得分:0)
在json数组中,我会用jquery做这样的事情:
function displayData(x) {
x.success(function(data) {
$.each(data.columns, function(i, paramenter) {
$.each(parameter, function(a, b) {
$('#somediv').append('column'+parameter+' -> data: '+b+' ');
});
});
}),
x.error(function(data) {
//error message
})
}//end displayData
所以你可以遍历你的阵列,但你必须玩它,我没有测试它,但总的来说这是个主意。希望它有所帮助。
答案 1 :(得分:0)
我只是通过添加此代码来解决这个问题
$('#imageWrapperTable').DataTable({
columns:[
{"data" : "name"},
{"data" : "type"},
{"data" : "action"}
],
"processing": true,
serverSide: true,
ajax: {
url: '/getImageWrappers.json',
type: 'POST',
datatype: 'json',
data: function(d){
//add your custom param here
d.name = "zxbing";
//this will put all query strings to a json object string
return JSON.stringify(d);
}
}
});
通过这种方式,您只需要将一个查询字符串传输到服务器端的JSON对象。