通过不断的百度和尝试终于找到了strus2接受的数组和数组对象的json格式了
1、数组
话不多说直接上代码:
1.1 js的代码
//批量删除--传字符串list
function batchDeleteById(qz, url) {
var msg = $.messager.alert("提示", "确定要删除选中行?","",function(){
selects = $("#"+qz+"Datagrid").datagrid("getSelections");
var ids = new Array();
for(var i=0,len=selects.length; i<len; i++){
ids.push(selects[i].uuid);
}
console.log(ids);
var param = $.param({"ids":ids},true);
console.log(param);
// requestByAjax(qz, url, param);
});
然后来看看控制台输出
[18,19,20]//这是Array数组
ids=18&ids=19&ids=20//这是被param方法格式化后
然后是后台接收的变量
/**
* 批量删除
*/
private List<String> ids;
public List<String> getIds() {
return ids;
}
public void setIds(List<String> ids) {
this.ids = ids;
}
听说这里换成数组也行,不过我比较喜欢用List
2、数组对象
js代码
function batchDelete(qz, url) {
var msg = $.messager.alert("提示", "确定要删除选中行?");
msg.window({onClose: function() {
selects = $("#"+qz+"Datagrid").datagrid("getSelections");
var objs = {};
var str = "";
for(var i=0; selects.length>i; i++) {
objs["dep["+i+"].uuid"]=selects[i].uuid;
objs["dep["+i+"].name"]=selects[i].name;
objs["dep["+i+"].tele"]=selects[i].tele;
}
requestByAjax(qz, url, objs);
}});
}
传送的json格式
dep[0].name: "撒大是大非"
dep[0].tele: "12312312"
dep[0].uuid: 47
dep[1].name: "阿斯顿啊"
dep[1].tele: "12312312"
dep[1].uuid: 48
dep[2].name: "啊大说的"
dep[2].tele: "123123"
dep[2].uuid: 49
dep[3].name: "阿瑟大时代"
dep[3].tele: "123123123"
dep[3].uuid: 50
其实就是把数组对象拼装成js对象传送的
然后后台接收
/**
* 批量删除属性注入
*/
private List<Dep> dep;
public List<Dep> getDep() {
return dep;
}
public void setDep(List<Dep> dep) {
this.dep = dep;
}
总结
相对于数组,传送数组对象的格式要求更严格,必须是类似于“ dep[0].name: "撒大是大非" ”这样的格式,其中dep[0]在后台代表一个对象,中括号必须要有,当然,属性的名字你可以换,但是要和前台传来的数据的名字对应,比如
json java
ids ids
dep[0] dep
转自:
https://blog.csdn.net/hiyohu/article/details/45897551
https://blog.csdn.net/qq_36804605/article/details/56288030