2013-08-06 85 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

相關問題