需求:1、将页面数据带到服务端并转成对象,2、将页面的集合数据带到服务端转List
实现:用ajax请求传递数据,数据格式为json
JS方法:
testJsonMethod = function(){
// 员工信息
var employeeInfo = {
emplNum : '123',
emplName : 'lee',
telNum : '18888888888'
};
// 标签信息
var dataParam = [];
for(var i=0; i<3; i++){
var employeeLabel = {
labelName : 'name' + i,
labelOrder : i,
labelRemarks : 'remark' + i
}
dataParam.push(employeeLabel);
}
var jsonEmployee = JSON.stringify(employeeInfo);
var jsonLabelList = JSON.stringify(dataParam);
// cache Boolean (默认: true) 设置为 false 将不会从浏览器缓存中加载请求信息。
// async Boolean (默认: true) 默认设置下,所有请求均为异步请求。如果需要发送同步请求,请将此选项设置为 false。注意,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行
$.ajax({
type : 'post',
url : '${ctx}/admin/employee/testJsonMethod',
data : {jsonEmployee:jsonEmployee, jsonLabelList:jsonLabelList},
cache : false,
dataType : 'json',
success : function(data){
alert(data);
},
error : function() {
alert("异常!");
}
});
}
服务端方法:
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
@RequestMapping(value = "/testJsonMethod", method = RequestMethod.POST)
public ModelAndView testJsonMethod(String jsonEmployee, String jsonLabelList) throws Exception {
SysEmployeeInfo sysEmployeeInfo = (SysEmployeeInfo) JSONObject.toBean(JSONObject.fromObject(jsonEmployee), SysEmployeeInfo.class);
List<SystLabelInfo> systLabelInfoList = (List<SystLabelInfo>) JSONArray.toCollection(JSONArray.fromObject(jsonLabelList), SystLabelInfo.class);
return new ModelAndView(JSON_VIEW).addObject(Constant.RETURN, true);
}