公司一直用的jqgrid表格,一般來說傳參請求默認是get,參數也就幾個普通的參數
最近有個需求是進行高級查詢,就是查詢參數中會含有數組,而且是對象數組,於是
發送的參數是這樣的:
{
status:0,
name:"哈哈",
[
{
field:"aaa",
name:"ccc",
expand_status:20
},
{
field:"aaa",
name:"ccc",
expand_status:20
},
{
field:"aaa",
name:"ccc",
expand_status:20
}
]
}
這樣的數據需要以json格式發送,相對應的,spring boot Controller接參數需要使用requestBody註解
jqgrid這樣配置
datatype: "json",
mtype:"post",
ajaxGridOptions: {contentType: "application/json;charset=UTF-8"},
serializeGridData : function(postdata) {
return JSON.stringify(postdata);
},
配置ajax請求參數爲json,並且設置參數序列化方式,將對象使用JSON.stringify方法轉化成json字符串發送
@RequestMapping("/list")
@RequiresPermissions("property:room:list")
public R list(@RequestBody Map<String, Object> params){
PageUtils page = roomService.queryPage(params);
return R.ok().put("page", page);
}
這樣後臺就可以成功接收到數組參數,因爲是Map<String,Object>類型,所以數組對象可以直接轉化成List<Map<String,Object>>即可