在JavaScript中使用$ {}内的循环变量来访问数组的元素

时间:2016-12-12 18:14:12

标签: javascript arrays

我有一个java Web应用程序,我在其中定义了一个名为“Image”的类。这个类中的一些属性是
源(图像的base64表示)
宽度
身高

在我的应用程序的某一点上,我使用servlet通过使用以下语句将包含'Image'类对象的数组传递给jsp页面。

request.setAttribute("images", imageDetails);

我在这个jsp页面中有一个需要访问这个数组的脚本。 我可以通过指定索引来访问此数组的特定对象的source属性。

var test='${images[0].source}';

但是,我的要求是访问每个Image对象的source属性。但是用如下的循环变量'count'替换数组索引似乎不起作用。

var count;
for (count=0;count<5;count++)
{
    var test='${images[count].source}';
}

如果有人能告诉我如何使用循环变量来访问每个对象的属性,我们将不胜感激。

2 个答案:

答案 0 :(得分:1)

您已经在标记内部编写了循环,这会导致它们以意外的方式运行,因为您的循环受到加载JSP页面的干扰。 所以你必须添加

<body onload="functionName()">

在该函数中,您可以拥有循环

答案 1 :(得分:0)

我无法像我的问题中所描述的那样找到按照我想要的方式访问传递的对象的方法。 但是我能够通过使用JSON来解决导致它的问题。

我首先使用Gson库将我的Image对象数组转换为JSON,然后按如下方式从servlet传递它。

Gson gson=new Gson();
String imageDetailsJson=gson.toJson(imageDetails);
request.setAttribute("imageDetailsJson", imageDetailsJson);

然后我从jsp页面中的JavaScript脚本访问它,使用JSON.parse()函数对其进行解析,然后循环遍历它。

var temp = '${imageDetailsJson}';
var json = JSON.parse(temp);
for (count = 0; count <5; count++)
{
    test = json[count]["source"];
}

通过这样做,我能够访问每个图像对象的“source”属性。