公司一直用的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>>即可