ajax传递多种数据类型的处理

程序开发中,遇到了ajax传递多种数据类型,踩了很多坑,特总结回馈给大家,需求是ajax需要传递多条list和一个字符串两种数据类型

	//批量保存
	  function save() { 
	var mparentcode=$(" input[ name='mparentcode' ] ").val();
	var mfunccode=$(" input[ name='mfunccode' ] ").val();
	var mfuncname=$(" input[ name='mfuncname' ] ").val();
	//var mleaf=$(" input[ name='mleaf' ] ").val();
	var mleaf = $("#mleaf").val();
	var mindexid=$(" input[ name='mindexid' ] ").val();
	var mlevelcode=$(" input[ name='mlevelcode' ] ").val();
	var murl=$(" input[ name='murl' ] ").val();
	var mremark=$(" input[ name='mremark' ] ").val();
	
	var mobj ={
			parentcode:mparentcode,
			funccode:mfunccode,
			funcname:mfuncname,
			leaf:mleaf,
			
			indexid:mindexid,
			levelcode:mlevelcode,
			url:murl,
			remark:mremark
	};
	var productArray = new Array();
	productArray.push(mobj);
	
	var tb = document.getElementById('detail_editable_1');    // table 的 id
	var rows = tb.rows;                           // 获取表格所有行
	for(var i = 1; i<rows.length; i++ ){
	var obj = {};
	 for(var j = 0; j<rows[i].cells.length; j++ ){    // 遍历该行的 td
	 	obj[$(rows[i].cells[j]).children().attr('name')]= $(rows[i].cells[j]).children().val();
	 	
	       } 
		  productArray.push(obj);

	  
	}

在前台将list封装成一个个对象放入数组中,通过JSON.stringify方法把对象序列成json字符串

后台使用Map<String, Object>进行接收,可以看到后台已经取到数据,分别用实体类list和String进行获取,便可以处理数据。

public boolean saveVdSystemMenuTreeList(String parentId,List<MenuTree> list) {
		// 根据ID删除数据
		/*JSONObject jsonObject=JSONObject.fromObject(list); // 将数据转成json字符串
		MenuTree per = (MenuTree)JSONObject.toBean(jsonObject, MenuTree.class); //将json转成需要的对象
*/		
		
		if(StringUtils.isNotEmpty(parentId)){

			MenuTreeMapper.deleteByParentId(parentId);
			MenuTreeMapper.deleteById(parentId);
			// 批量添加菜单树列表
			for(Object obj : list){
				
				JSONObject jsonObject=JSONObject.fromObject(obj); // 将数据转成json字符串
				MenuTree per = (MenuTree)JSONObject.toBean(jsonObject, MenuTree.class); //将json转成需要的对象
				int key = MenuTreeMapper.insertSelective(per);
				if(key <= 0){
					return false;
				}
			}
		}
		else{
			return false;
		}
		
		return true;
	}

猜你喜欢

转载自blog.csdn.net/sinat_25311845/article/details/86630022