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

如何从客户端JavaScript代码访问Java列表元素?,java,javascript,jsp,el,Java,Javascript,Jsp,El,我有以下简单的脚本,我正在使用它动态地创建 <script type="text/javascript"> function generate(){ var arr = new Array(); <c:forEach items="${articles}" var="a" varStatus="status"> $('#listitems').append( "<li&g

我有以下简单的脚本,我正在使用它动态地创建

<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> 

函数生成(){
var arr=新数组();
$('#listitems')。追加(
“
  • ”+${a.title}+“
  • ” ); arr[${status.index}]=“${a.slideShow.images}”; }
    我的问题源于图像属性。每篇文章都有一个幻灯片,每个幻灯片都有一个图像列表。我想通过jave list.get(index)从图像列表中取出第一张图像;我想做一些类似“${a.slideShow.images.get(0)}”的事情。get()是来自list对象的java方法


    有什么想法吗?

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


    查看页面上的源代码-这可能会有所帮助。您不应该看到上面包含的JSP/JSTL。

    在EL中,您可以使用大括号表示法按索引访问
    列表
    元素。因此,应采取以下措施:

    arr[${status.index}] = "${a.slideShow.images[0]}";
    
    这将在幕后完全按照您的建议执行:
    a.getSlideShow().getImages().get(0)

    也就是说,您通常按照如下方式声明JS数组:

    var arr = [];
    

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

    Javascript与Java没有任何关系,除了名称的前四个字母。忘记Java,使用plain(真正的Javascript)和DOM(文档对象模型)获取该UL中的项目。JavaScript也是典型的客户端代码。伙计们,在评论之前,阅读问题和代码,而不仅仅是标题。标题很重要。它们不是问题的概要吗?如果这个问题陈述了一些不同于散文的东西,这难道不意味着误解吗?嗨,伙计们,我很抱歉措辞含糊不清。巴卢斯克,你说得对。谢谢你的帮助,你说得对。从问题的措辞和所附评论来看,我不确定他是否理解这一点。你认为我的答案令人困惑吗?不鼓励使用新关键字创建数组?还是总是泄气?@Upper Stage:@Binaryrespawn:你说的“导致我的页面无法加载”是什么意思?这太模棱两可了。如果您得到一个空白页,请检查服务器日志中是否有任何异常/错误。如果你得到一个普通的页面,但是图像没有被加载,右键点击页面并查看生成的HTML/JS源代码,并验证它是否在语法上有效。嗨,这个语句对我不起作用。这会导致我的页面无法加载,可能是因为有些文章没有幻灯片,因此没有图像。所以我这样做了,正如前面所说的,只需在浏览器中打开页面并检查生成的JS代码是否在语法上有效。也许它代表一个字符串值,而您忘记了JS变量值周围的单引号。