2011-04-11 46 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"]