Javascript 将数组从Java(JSP)传递到jQuery

Javascript 将数组从Java(JSP)传递到jQuery,javascript,jquery,jsp,Javascript,Jquery,Jsp,我知道如何在用Java编写的程序中使用$ 像这样 $.each( ['a','b','c'], function(i, l){ alert( "Index #" + i + ": " + l ); }); 如果我想将arraylist或string数组从java程序传递到任何人都知道的JQuery,那该怎么办 我写 String[] arr1=new String[2]; arr1[1]="whatever"; arr1[2]="ksj"; $.each( arr1, functi

我知道如何在用Java编写的程序中使用$ 像这样

$.each( ['a','b','c'], function(i, l){ 
   alert( "Index #" + i + ": " + l ); 
 });
如果我想将arraylist或string数组从java程序传递到任何人都知道的JQuery,那该怎么办

我写

String[] arr1=new String[2];
arr1[1]="whatever";
arr1[2]="ksj";
$.each( arr1, function(i, l){ 
   alert( "Index #" + i + ": " + l );
 }
但它不起作用


Update::我有一个jsp页面,其中包含java的一部分,如下所示:

<%@page import="java.lang.reflect.Array"%>
<%@page import="java.util.ArrayList"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>

        <style>
            .highlight { background-color: yellow }
        </style>
    </head>
    <body>
        <h1>Hello World!</h1>
        <%  ArrayList wordslist = new ArrayList();
      wordslist.add("Hello");
      wordslist.add("again");

     String[] arr1=new String[wordslist.size()];
      for (int i=0; i<wordslist.size();i++)
      {
     arr1[i]=wordslist.get(i).toString();
        }%>



        <a href="http://jquery.com/">jQuery</a>

        <p> Hello again and again</p>
          <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
       <script src="jquery.highlight-3.js"></script>
       <script>

        $(document).ready(function(){
       alert( arr1 );     
      var arr=new Array();
      arr.

$.each( arr, function(i, l){ 
   alert( "Index #" + i + ": " + l );
 }
)


     });

       </script> 
    </body>
</html>

JSP页面
.突出显示{背景色:黄色}
你好,世界!

首先,您的代码格式错误。你错过了结尾部分。其次,索引是以零为基础的。第三,数组创建错误

var arr1 = new Array();
arr1[0]="whatever";
arr1[1]="ksj";
$.each( arr1, function(i, l){ 
   alert( "Index #" + i + ": " + l );
}); //Missed the );

总的来说,我建议在使用jQuery时编写JavaScript而不是Java。只是一个提示。:)

Javascript变量不是用类型声明的,您不能要求字符串数组,因为Javascript只有一种数组,它包含任何内容。另外,确保支架平衡。最后,Javascript中的数组索引从0开始,就像在大多数其他编程语言中一样(包括Java,您似乎对它感到困惑——但是Java和Javascript之间没有任何关系,尽管名称不同)

使用一个。然后将
ArrayList
序列化为JSON:

ArrayList wordslist = new ArrayList();
wordslist.add("Hello");
wordslist.add("again");

String json = (new JSONArray(wordslist)).toString();
在JavaScript代码的适当位置回显JSON文本。例如

$(document).ready(function(){    
    var arr = <%= json %>;
    $.each( arr, function(i, l){ 
        alert( "Index #" + i + ": " + l );
    });
});
$(文档).ready(函数(){
var-arr=;
$.each(arr,function(i,l){
警报(“索引#”+i+:“+l”);
});
});

实际上,我不确定这是否是用于打印变量的正确JSP语法。如果不正确,请更正。

Java或Javascript?这不是有效的Java语法。Java和Javascript是完全不相关的语言。JQuery是一个Javascript库。对不起!我的数组位于程序的java部分,它有时是可更改的,它包含2项,有时是3项,以此类推。。问题是如何在不使用赋值的情况下在java程序中使用数组加载jquery中的数组?非常感谢!但无论如何都要避免使用嵌入的java代码。@user651521:不。Jave在服务器端工作,JavaScript在客户端工作。不能使用JavaScript直接访问Java的数据结构。
$(document).ready(function(){    
    var arr = <%= json %>;
    $.each( arr, function(i, l){ 
        alert( "Index #" + i + ": " + l );
    });
});