2013-01-03 31 views
0

問題是我不能夠得到地圖鍵和它的值(這又是一個Java的ArrayList)在javascript函數如何在jsp中訪問javascript中的map key,value(java.util.Map)?

我的代碼如下:

function myset() { 
    var mymap="${range}";//range is a java map which is accessible here 

//Here i need to display the mymap key and its value(which is an arraylist) 
} 

<select id="bn" name="bn" onchange="myset()"> 
</select> 

範圍是一個Java地圖如下:

List<String> l=new ArrayList<String>(); 
l.add("123"); 
l.add("456"); 
l.add("789"); 
List<String> ls=new ArrayList<String>(); 
l.add("222"); 
l.add("456"); 
l.add("333"); 
Map<String,List<String>> m=new HashMap<String,List<String>>(); 
m.put("123", l); 
m.put("456", ls); 

請問能否告訴我如何在上面的javascript函數中顯示map key和它的arraylist?

+1

你有什麼試過?當你執行'console.log(mymap);'時它會顯示什麼? – jbabey

+0

實際上,我必須在其他下拉列表中填充arraylist值(第二個)。 例如,如果地圖鍵== 123然後我必須得到有關它的數組列表在其他下拉填充 \t \t 其它下拉如下面 \t \t <選擇ID =「第二」名稱=「第二」 > 你可以讓我知道如何做到這一點? – user1938073

回答

1
var mymap="${range}";//range is a java map which is accessible here 

這樣做,你只是在做

var mymap="#{range.toString()}" 

(或者,如果您已經定義了一個轉換器,通過它返回的值)。

您將需要迭代Java代碼以創建將填充地圖的JS代碼。

認爲JS和Java在完全分離的虛擬機(很可能在不同的計算機)中工作,所以你不能只傳遞一個對Java的引用,並期望它在JS中「工作」。你必須複製所有的數據。

+0

非常感謝您的答覆。但它顯示在警報範圍(mymap)輸出:mymap {123 = [123,456,789,222,456,333],456 = []} Atlease讓我知道如何訪問java的map鍵和它的值在一個javascript function.i中有這個代碼在一個jsp文件中。請讓我知道方式。 – user1938073

+0

如果有其他方式,請告訴我 – user1938073

相關問題