Spring MVC在接收集合请求参数时,需要在Controller方法的集合参数里前添加@RequestBody,而@RequestBody默认接收的enctype (MIME编码)是application/json,因此发送POST请求时需要设置请求报文头信息,否则Spring MVC在解析集合请求参数时不会自动的转换成JSON数据再解析成相应的集合。
在使用easyUi的datagrid请求数据,其中默认的方式是:application/x-www-form-urlencoded; charset=UTF-8
但是后端要求用
application/json
。datagrid并没有配置content-type的属性。
解决方式
经过一上午研究,可用如下方式,重写datagrid类中的loader方法修改其配置。
$("#grid").datagrid({
queryParams:params,
...//其余参数配置
loader : function(param, success, error) {
$.ajax({
type : 'post', //请求方式
url : 'xxxxxx', //请求地址
dataType : 'json',
contentType : 'application/json;charset=utf-8', // 设置请求头信息
data : JSON.stringify(param),
success : function(result) {
success(result);
}
});
}
});
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。