2011-04-11 90 views
5

我有一個數組,它包含我作爲參數傳遞的其他數組。我使用request.getParameterValues()來獲取參數,但問題是隻有原始數組以陣列格式進入。數組內部的數組正在轉換爲字符串。有另外一種發送和接收多維數組的方法嗎?java-servlet request.getParameterValues()

+0

@mayan:是裏面來爲逗號陣列(,)分隔的字符串? – 2011-04-11 08:30:16

+0

代碼在哪裏?在轉發請求之前,你確定主數組的內容是一個數組嗎?請讓我們看看您如何存儲,轉發和獲取陣列。 – ace 2011-04-11 09:08:08

+0

是數組裏面的逗號(,)分隔值我不想使用拆分.. – mayan 2011-04-11 09:52:09

回答

1

如果內陣列來作爲逗號(,)分隔然後嘗試下面的代碼

String[] outerArray=request.getParameterValues('parameterName'); 

String[] innerArray=outerArray[0].split(","); 

動態,就可以做到這一點,並且使用不同String[]來存儲數據,或使用ArrayListString[]

for (int i = 0; i < outerArray.length; i++) { 

      String[] innerArray=outerArray[i].split(",");   
     } 
+0

這是我不想使用拆分的問題,因爲我的數組值也有一些模式,例如,.-等 – mayan 2011-04-11 08:59:15

+0

@mayan:然後只有一種方法來解決方法,而不是發送內部數組......發送由字符分隔的字符串比如'#$#'或'$$$'或'###'某些模式不會出現在數組中,然後使用split(「模式」); – 2011-04-11 10:01:37

+0

感謝您的回答,我仍然需要找到其他的方式... – mayan 2011-04-11 10:10:59

17

如果使用GET方法,你必須這樣建立查詢:

http://localhost:8080/myApp/myServlet/?habits=Movies&habits=Writing&habits=Singing 

如果您正在使用POST方法,則必須使用application/x-www-form-urlencoded內容類型,或者僅在您的HTML表單中使用Post方法。例如:

<form method="post"> 
Habits : 
    <input type="checkbox" name="habits" value="Reading">Reading 
    <input type="checkbox" name="habits" value="Movies">Movies 
    <input type="checkbox" name="habits" value="Writing">Writing 
    <input type="checkbox" name="habits" value="Singing">Singing 
    <input type="submit" value="Submit"> 
</form> 

然後在你的servlet兩種情況:

String[] outerArray=request.getParameterValues('habits'); 
your array will be filled with separated values: 

//["Writing","Singing"] 
相關問題