为什么我的简单的for-each循环,在我的对象集合,不工作(JQuery)



我有一个对象集合,通过EL在JavaScript/JQuery中检索(至少我是这样认为的)。我将变量命名为"国家"。在调用alert(国家)后,我的输出如预期的那样。我有四个元素,应该是这样的

我以为这是世界上最简单的事情,但不知道为什么,它就是不起作用,所以…帮助吗?

var countries = "${requestScope.countries}";

alert(countries)给出如下输出:

[beans.CountryBean@(id#), beans.CountryBean@(id#), 
beans.CountryBean@(id#), beans.CountryBean@(id#)]

@AaronDigulla建议使用以下语法:

$.each(countries, function(index, value) { ... });

但是这段几乎相同的代码没有输出。

$.each(countries, function(index, value) { alert(index + "here");});

我假设它会产生4个警报是错的吗?

使用$.each(countries, function(index, value) { ... });

$.each()可以遍历所有类型的东西(数组,对象和JQuery选择器)。

接下来,需要将bean转换为JavaScript。浏览器无法理解beans.CountryBean@(id#)。使用JSON框架(如Gson)创建JSON字符串:

var countries = ${new Gson().toJson(requestScope.countries)};

注意不能再引用字符串;Gson会帮你的。但是我担心这个表达式超出了EL所能做的范围。在这种情况下,您需要在其他地方进行转换并将其放入EL上下文中。

最新更新