2013-08-06 59 views
0

我打算将javascript数组传递给服务器。该数组基本上将包含具有多个选项的选择标记的所有选项值。可以使用getParameterValues()将html数组转换为Java数组吗?

客户端

<input type="hidden" id="selectedGroupIds" name="selectedGroupIds"> 
<input type="submit" name="mapSubmit" value="Map Now" onclick="setGroupIds()"> 

function setGroupIds() { 
    var selectedGroupIds = []; 
    $('#selectedGroups option').each (function() { 
     selectedGroupIds.push($(this).val()); 
    }); 
    $('#selectedGroupIds').val(selectedGroupIds); 
} 

服务器端

String[] groupArr = request.getParameterValues("selectedGroupIds"); 
System.out.println("Length = " + groupArr.length); // Prints 1 even if 2 elements in the array like [1,2] 

更新 我KNW它后可以通过getParameter()和分裂来完成。只是好奇)知道,如果可以在不拆分使用getParameterValues(完成

回答

0

GET参数值是当你有多个值的单一参数使用。你认为你已经通过将你的数组设置为输入字段的val()来实现这一点,然而你实际上已经在你的数组上完成了一个隐含的join(或implode)类型的命令到一个单一的字符串,一个逗号分隔的列表,所以getparametervalues会总是得到一个价值。

情况下,使用它来获取多个值,会像

<input type=checkbox name=check1 value='1'> 
<input type=checkbox name=check1 value='2'> 
<input type=checkbox name=check1 value='3'> 

让所有检查组复选框称为CHECK1

+0

是的。现在感觉像一个愚蠢的问题。 – abhihello123

+1

一点都不,我去过那里!希望这篇文章能够帮助那些可能会遇到类似情况的人。 – chiliNUT

1
String selectedGroups = request.getParameter("selectedGroupIds"); 
String[] arr = (selectedGroups!=null)?selectedGroups.split(","):null; 
+0

对不起不同的值忘了提这个解决方案是已知的。我编辑了我的问题并更新了。希望不要分裂。 – abhihello123

相关问题