【转载】Jsp页面传Json数据到服务端,转对象或集合进行数据处理
需求: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); }