我有一个对象集合,通过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上下文中。