一、建立js方法
/**
@functionname:serializeObject
@description:将序列化数组转化为map类型对象类型
@author:yzh
@param:
@date:2018-08-16
*/
$.fn.serializeObject = function()
{
var o = {};
var a = this.serializeArray();
$.each(a, function() {
if (o["params["+this.name+"]"] !== undefined) {
//设置为map类型
if(this.value!='' && this.value!= null){
o["params["+this.name+"]"] = o["params["+this.name+"]"]+","+this.value || '';
}else{
o["params["+this.name+"]"] = o["params["+this.name+"]"] || '';
}
} else {
o["params["+this.name+"]"] = this.value || +",";
}
});
//将json对象中的非法NaN转换为""
$.each(o,function(m){
if(this+"" == "NaN"){
o[m] = "";
}
});
return o;
};
二、浏览器查看参数
三、测试
在controller方法中使用含有Map<K,V>
params属性的复合类进行接收(复合类变量名可随意):
//提交按钮事件:添加数据
btn.on("click",function(){
//将序列化数组转化为map类型对象类型
var userInfo = $form.serializeObject();
ajaxUtil({
validatorForm:"#form",
url:"/list/saveUserInfo.action",
type:"post",
async:false,
data:userInfo,
model:$("#myModal")
});
});
@ResponseBody
@RequestMapping(value = "/saveUserInfo.action",method = {RequestMethod.POST })
public DataMessage saveUserInfo(Pagination<UserInfo> pageParams) throws Exception {
System.out.println(pageParams.getParams());
return DataMessage.successData("添加成功...");
}
/**output:
{password=123#We, sex=女, tel=15345678903, age=23, email=123@qq.com, username=lhywe}
**/
说明:Map<K,V> params是Pagination的一个属性