1
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);                
            }
        });
    }
 
});

零尘wEz25
7 声望0 粉丝