簡體   English   中英

如何將數組從jsp傳遞給servlet

[英]How to pass an array from jsp to servlet

我試圖使用ajax調用從jsp向servlet發送一些數據; 在我的java腳本中,我有以下方法:

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為null,提示警報不為空,有人可以幫我嗎?

嘗試將JS數組放入一些隱藏元素(作為網站上的html的一部分),該形式將發送到servlet,如:

var ele = document.createElement("input");
ele.setAttribute("hidden","");
ele.setAttribute("value",cellPhones.toString());

為什么不創建一個類,它將數組作為屬性。 設置字段值,然后將obj設置為request。 這不僅可以幫助您進入servlet,還可以用於您想要將一些數據發送回您的jsp。

在ajax,您將數值發送為數組:

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

但是,在servlet中,您試圖將值作為單個值。 您需要將值作為array [] 嘗試,

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

我解決了這個問題,我所要做的就是將手機轉換成字符串,不需要隱藏元素我只是添加了這行代碼:

var cellPhone=cellPhones.toString();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM