2

我有以下简单的脚本,我用它来动态创建列表元素<ul>

<script type="text/javascript">
    function generate(){
        var arr = new Array();
        <c:forEach items="${articles}" var="a" varStatus="status">
            $('#listitems').append(
                "<li>"+${a.title}+"</li>"
            );
            arr[${status.index}] ="${a.slideShow.images}";
        </c:forEach>
    }
</script> 

我的问题源于图像属性。每篇文章都有一个幻灯片,每个幻灯片都有一个图像列表。我想通过 jave list.get(index); 从图像列表中提取第一个图像;我想做类似"${a.slideShow.images.get(0)}"; . get() 是来自列表对象的 java 方法。

有任何想法吗?

4

2 回答 2

5

List在 EL 中,您可以使用大括号符号按索引访问元素。因此,应该执行以下操作:

arr[${status.index}] = "${a.slideShow.images[0]}";

这将在幕后完全按照您的建议进行:a.getSlideShow().getImages().get(0).

也就是说,你通常会像下面这样声明 JS 数组:

var arr = [];

new关键字在 JS 中被认为不鼓励使用。

于 2010-02-12T18:54:01.483 回答
1

正如那些对您的问题发表评论的人所暗示的那样,这是一个常见的误解。当您的 JavaScript 执行时(在浏览器中),Java、JSP 和 JSTL 不再可用。JSTL/JSP 在服务器上执行以创建源/HTML,然后将其发送到客户端。

在您的页面上查看源代码 - 它可能会有所启发。您不应该看到上面包含的 JSP/JSTL。

于 2010-02-12T18:48:50.147 回答