Struts2 不能接收数组

Struts2 不能接收数组

http://bbs.csdn.net/topics/390339953

struts2没有自动转换接收的,js不用变,需要在java代码里这样接收:String[] ids = request.getParameterValues("ids[]");这样就可以了。

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 
JavaScript code
 
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
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");
            }
            });
        }
Java code
 
?
1
2
3
4
5
6
7
8
9
10
11
12
13
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

 

 

其实你没必要把问题搞得这么复杂话
你用var ids=grid.getGridParam("selarrrow");
ajax的时候直接在data里面ids=ids.toString();
action里面直接定义String ids的setter gettter
就可以获得1,2,3,4,5这样的字符串了。到时你要转换成数组直接ids.split(",")就可以了

 

posted @ 2017-08-11 18:40  sky20080101  阅读(62)  评论(0)    收藏  举报