我有一个对象集合,通过EL在JavaScript / JQuery中检索(至少这是我的想法)。我将变量命名为“countries”。在调用alert(countries)时,我的输出是预期的。我应该有四个要素。
我认为这将是世界上最简单的事情,但由于一个未知的原因,它只是不起作用所以...帮助?
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个警报,我错了吗?
答案 0 :(得分:2)
使用$.each(countries, function(index, value) { ... });
$.each()可以迭代各种事物(数组,对象和JQuery选择器)。
接下来,您需要将bean转换为JavaScript。浏览器无法理解beans.CountryBean@(id#)
。使用像Gson这样的JSON框架来创建JSON字符串:
var countries = ${new Gson().toJson(requestScope.countries)};
请注意,您不能再引用该字符串; Gson会为你做这件事。但我担心这种表达超出了EL的范围。在这种情况下,您需要在其他地方进行转换并将其放入EL上下文中。