功能需求:后台返回状态info
框架:SpringMVC
前后台交互方式选择:ajax 而不是表单提交。
-
前台传数据到后台
需将form表单进行序列化
采用jQuery内置的系列化方式 serialize
$("form").eq(0).serialize();
但所得到的结果并不是我们所想要的样子,可自行再试遍。
后来采用了其插件 serializeObject$.fn.serializeObject = function () {
var obj = {};
var count = 0;
$.each(this.serializeArray(), function (i, o) {
var n = o.name, v = o.value;
count++;
obj[n] = obj[n] === undefined ? v
: $.isArray(obj[n]) ? obj[n].concat(v)
: [obj[n], v];
});
//obj.nameCounts = count + "";//表单name个数
return JSON.stringify(obj);
};这样就得到了,我们想得到的结果。(虽然这代码还是有些Bug,例如复选框之内的,但对于我的代码而言是可以的了。)
var subjectData = $("form").eq(1).serializeObject();
var url ="<%=request.getContextPath()%>/{0}";
$.post(url,{"subjectData":subjectData},function(data){
console.log(data.info);
}); -
后台接受前台数据
和正常一样,用 @RequestParam注解
紧接着我是采用gson方式将json格式数据解析成VO对象。
本人博客:Gson解析