0

问题是我无法在 Javascript 函数中获取映射键及其值(又是一个 Java ArrayList)

我的代码如下:

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>

range 是一个 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 函数中显示地图键及其相关的数组列表吗?

4

1 回答 1

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

这样做,你只是在做

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

(或者,如果您定义了转换器,则为它返回的值)。

您将需要迭代 Java 代码以创建将填充地图的 JS 代码。

认为 JS 和 Java 在完全分离的 VM 中工作(很可能在不同的计算机上),所以你不能只传递对 Java 的引用并期望它在 JS 中“工作”。您必须复制所有数据。

于 2013-01-03T16:44:10.080 回答