如何从客户端JavaScript代码访问Java列表元素?

时间:2010-02-12 18:43:09

标签: java javascript jsp el

我有以下简单脚本,我用它来动态创建<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> 

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

有什么想法吗?

2 个答案:

答案 0 :(得分:6)

在EL中,您可以使用括号表示法按索引访问List元素。因此,以下应该做:

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

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

那就是说,你通常会声明JS数组如下:

var arr = [];

JS中不鼓励使用new关键字。

答案 1 :(得分:1)

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

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