一. 前台传值到后台的方式:
在js里面构造数据的方式:
1) 直接构造json格式,如集合对象:
var users=[{name:‘张三’, age:‘21’, birth:‘1994-12-12’},
{name:‘李四’, age:‘20’, birth:‘1995-12-11’},
{name:‘wangwu’, age:‘20’, birth:‘1995-12-11’}]
2) 通过Object构造
var data1 = new Object();
data1.username = “liufu”;
data1.userpwd = “abc”;
data1.age = 22;
3 ) 通过手动构造
var data2 = {
username:“liufu”,
userpwd:“abc”
}
data2.age = 22;
4 ) 根据datagrid表格构造数组或是集合(每一行数据的集合)
var list = new Array()
var allRows = $("#productListForTemp").datagrid(“getRows”);
for(var i=0; i<allRows.length; i++){
var datas = {};
datas.tempId = allRows[i].id;
datas.collectNode = allRows[i].collectNode;
datas.collectUnit = allRows[i].collectUnit;
datas.submitOrDeliver = allRows[i].submitOrDeliver;
list.push(datas)
}
利用ajax发送请求:
$.ajax({
url:“proTemplateController.do?getComboData&isAjax=true&data=”+JSON.stringify(data1),
type:“POST”,
dataType:“json”,
async:false,
data:datax,
success:function(data){
if(‘AcquisitionNode’==code){
collectNodeComboData=data;
}else if(‘collectUnit’==code){
collectUnitComboData=data;
}else if(‘submitOrDeliver’==code){
submitOrDeliverComboData=data;
}
}
});
data1 和data2里面的数据是一样的。都可以放在jquery的所有ajax请求功能的方法中的data参数位置。
注意:在ajax方法的data的数据必须是*json格式的数据 上面的1users就可以通过ajax的data转化成JSON.stringify(users) 传参数,后台用@requestbody接收,如果参数是放在url的后面,集合类的数据要转化成json字符串到后台。
二:后台接收前台传过来的值:
1.用@requestBody接收参数:
这个注解将前台传过来的参数转化成json格式并将其绑定到对象类里面。
@RequestMapping(value="/saveJsonUser.do",method=RequestMethod.POST)
public Map saveJsonUser(@RequestBody User[]users){
for(Useru:users){
System.out.println(u.getName()+" “+u.getAge()+” "+u.getBirth());
}
return result;
}
2. 上面的添加在url后面的 data1参数的接收:
后台可以用request.getparameter(“data1”)接收,这样成了一个字符串怎么转化成想要的对象或者json格式数据呢?
阿里巴巴有个fastjson转换类:JSONArray arr = JSONArray.parseArray(data1); 这样讲json格式字符串转化成了json数组。然后可以通过遍历json数组,得到自己想要的值。
还有很多之间的转换,未完待续!!!
JSONArray arr = JSONArray.parseArray(data1);
for (int i = 0; i < arr.size(); i++) {
String a=JSONObject.parseObject(JSONObject.toJSONString(arr.get(i))).getString("a");
String b=JSONObject.parseObject(JSONObject.toJSONString(arr.get(i))).getString("b");
String c=JSONObject.parseObject(JSONObject.toJSONString(arr.get(i))).getString("c")
sessionFacade.save(plt);
}