如何将数组从JSP传递到Servlet

3

我正在尝试使用ajax调用从jsp向servlet发送数据;在我的JavaScript中,我有以下方法:

function sendMessage(){
        var cellPhones=[];
        var title=$('#subject').val();
        var text=$('#smsText').val();
        var groupsName=$('#dg').datagrid('getSelections');
        for(var i=0;i<groupsName.length;i++){
            cellPhones.push(groupsName[i].cellphone);
        }
        alert(cellPhones);

        $.ajax({
            type:"POST",
            url:"<%=basePath%>/SendMsgServlet?flag=sendSms",
            data:{
                title:title,
                text:text,
                cellPhones:cellPhones
            }
        }).done(function(){
            alert("ok");
        })
    }

在我的doPost方法中,我有以下内容:
if("sendSms".equals(flag.trim())){
        String title=request.getParameter("title");
        String text=request.getParameter("text");
        String[] cellPhones=request.getParameterValues("cellPhones");

        this.sendSms(title,text,cellPhones,request,response);
    }

问题是cellPhones为空,但警告不为空,请问有谁能帮帮我吗?

3个回答

0

在ajax中,您可以将值作为数组发送,例如:

 url= "cellPhone[]=121212&cellPhone[]=121212&cellPhone[]=121212"

但是,在servlet中,您正在尝试获取单个值。您需要将值作为数组[]获取。请尝试,

String[] cellPhones=request.getParameterValues("cellPhones[]");
                                                          |- Use array sign

0
为什么不创建一个类,将数组作为属性。设置字段值,然后将对象设置到请求中。这不仅可以帮助你在servlet中,还可以在需要将一些数据发送回jsp时使用。

0

我解决了这个问题,我所需要做的就是将手机转换为字符串,不需要隐藏元素,我只需添加这行代码:

var cellPhone=cellPhones.toString();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接