首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

Struts2 不能接收数组,哪位帮帮小弟我

2013-09-05 
Struts2 不能接收数组,哪位帮帮我本帖最后由 lpy3654321 于 2013-01-07 18:31:39 编辑if(confirm(确定要

Struts2 不能接收数组,哪位帮帮我
本帖最后由 lpy3654321 于 2013-01-07 18:31:39 编辑


if(confirm("确定要删除 "+ ids.length+" 条数据吗?")){
alert(ids);//  ids已经确定有值.为数组 有下标,有长度.循环可用.
$.ajax({
type : "post",
url:templateRoot + '/one/oneAction_delete.do',
dataType : "json",
data : { "ids" : ids},
//cache : false,
success : function(data, textStatus) {
jQuery("#grid").trigger("reloadGrid");
gridDialog.dialog("close");
}
});
}



public String[] ids;
public void setIds(String[] ids) {
this.ids = ids;
}


//程序能走到这里,把上面的参数换面字符串就可以里来,在下标为0的位置上,但数组的长度永远为1
public void delete(){
//oneService.deleteByIds(ids);
System.out.println("木要");
System.out.println("------"+ids);
outPrint("删除");
}



用System.out.println("------"+ids);输出为null struts javascript jquery 数组
[解决办法]

你这里??alert(ids);//??ids已经确定有值.为数组
弹出的ids是什么格式的 。 贴出来看看

应该为{"ids":"1","ids":"2"} 这样的格式把

[解决办法]
引用:
Plain Text code?1234你这里  alert(ids);//  ids已经确定有值.为数组弹出的ids是什么格式的 。 贴出来看看 应该为{"ids":"1","ids":"2"} 这样的格式把


也有可能是 ids=1&ids=2 这样的格式 , 都试试吧。
[解决办法]
引用:
引用:Plain Text code
你这里  alert(ids);//  ids已经确定有值.为数组 弹出的ids是什么格式的 。 贴出来看看   应该为{"ids":"1","ids":"2"} 这样的格式把
不是的,是用逗句分隔的..用浏览器DEBUG看是一个数组

你要想办法让 ids 为 ids=1&ids=2 或 {"ids":"1","ids":"2"} 这样子的格式。应该就是这两种格式 。都试试。


[解决办法]




[解决办法]
你用jqgrid获得的到的这个ids是一个array,json的表现形式是[1,2,3,4]这样的。alert(ids)弹出的显示是
[object object]这样的
http协议传输的时候可不认这个。struts2要接收这个数组的话你只有ids=1&ids=2或者{ids:1,ids:2}这样的形式要么你就要用字符串String来接收。你要传的话{ids:ids.toString()}这种的就可以只用String来接收通过,就可以分割了。要不就是自己写个oneAction_delete-conversion.properties的类型转换器,去转换
[解决办法]
你前台怎么传的啊
[解决办法]
 传一个字符串后台,再分拆
[解决办法]
其实你没必要把问题搞得这么复杂话
你用var ids=grid.getGridParam("selarrrow");
ajax的时候直接在data里面ids=ids.toString();
action里面直接定义String ids的setter gettter
就可以获得1,2,3,4,5这样的字符串了。到时你要转换成数组直接ids.split(",")就可以了
[解决办法]
17楼说的很正确啊,你在js里面获取值的时候,就用一个特点符号如“,”把值分开,js里面取到一个字符串,在action里面获取该字符串,再split一下就可以啦

热点排行