我有以下简单脚本,我用它来动态创建<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方法。
有什么想法吗?
答案 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。