在JS中定义数组,通过循环,把JSP中的数组存到JS中,再从JS中读取。

解决方案 »

  1.   

    <%
    String[] s={"1","2","3"};
    %>
    <script language="javascript">
    var my_array=new Array();
    <%for(int i=0;i<s.Length;i++){%>
    my_array[i]="<%=s[i]%>";
    <%}%>
    </script>
      

  2.   

    从jsp读取数据到js因为是从服务器端到客户端,是很容易的,毕竟代码的运行顺序是先服务器端后客户端
    如果要从js读取数据到jsp,那就必须通过两个不同的页面进行交换才行
      

  3.   

    Sample:
    /*
     * 几个数据结构
     */
    function CLabelValue (label, value)
    {
    this.label = label;
    this.value = value;
    }/*
     * 把“服务器”存储的所有“机构”的数据移到“用户端”……
     *
     */
    var theOffices = new Array (<%
    try
    {
    BeanClass_Department theDepartment;
    java.util.ArrayList allOffices= (java.util.ArrayList)session.getAttribute("theOfficeDepartments");
    for (i=0; i<allOffices.size(); i++)
    {
    theDepartment = (BeanClass_Department)allOffices.get(i);
    out.print ("new CLabelValue(\"" + theDepartment.getName() + "\", \"" + theDepartment.getDepartmentID_String() + "\")");
    if (i< allOffices.size()-1)
    out.print (",");
    }
    }
    catch(Exception theException)
    {
    }
    %>);
      

  4.   

    <Script Language="JavaScript">
    var jsArray = new Array(<%=jspArray.length()%>);
    <% for(int i = 0; i < jspArray.length(); i++) %>
      jsArray[<%=i%>] = "<%=jspArray[i]%>";
    </Script>
      

  5.   

    JSP:以JavaScript生成字符串类型数据组为例:
    String quot_="'"; // JS数组  字符串前后的单引号(如果是数值数组则为空[""]即可)
    String space=","; // JS数组 间隔逗号
    String[] strArray=....;
    String str="";
    for(int i=0;i<strArray.length;i++){
      str+= quot_ + strArray[i] + quot_ + space;
    }
    if(str.endsWith(space)){ // 去除尾部逗号
      str=str.substring(0,str.length()-1);
    }=========================================JavaScript:
    var strArr = new Array(<%=str%>); // 生成JS数组
      

  6.   

    有个老大已经说得很清楚,我就不罗嗦了。
    jsp 与asp和javascript的传递数值的原理一样。注意哪些是服务端(java)客户端(javascript)的代码就行
      

  7.   

    sorry
    <%
    String[] s={"1","2","3"};
    %>
    <script language="javascript">
    var my_array=new Array();
    <%
    for(int i=0;i<s.Length;i++){
    out.println("my_array["+i+"]="+s[i]);
    }
    %>
    </script>
      

  8.   

    采用 beyond_xiruo(J2EE苏鸿ASP.NET) 和 ashes(灰尘) 的方式将会产生过多的HTML源码:
     my_array[0]="0";
     my_array[1]="1";
     my_array[2]="2";
     ...
     ...
     ...
    我上面所写的则不会:
     var strArr = new Array('0','1','2',......);
      

  9.   

    sorry
    <%
    String[] s={"1","2","3"};
    %>
    <script language="javascript">
    var my_array=new Array();
    <%
    for(int i=0;i<s.Length;i++){
    out.println("my_array["+i+"]="+s[i]);
    }
    %>
    </script>
      

  10.   

    sorry
    <%
    String[] s={"1","2","3"};
    %>
    <script language="javascript">
    var my_array=new Array();
    <%
    for(int i=0;i<s.Length;i++){
    out.println("my_array["+i+"]="+s[i]);
    }
    %>
    </script>
      

  11.   

    sorry
    <%
    String[] s={"1","2","3"};
    %>
    <script language="javascript">
    var my_array=new Array();
    <%
    for(int i=0;i<s.Length;i++){
    out.println("my_array["+i+"]="+s[i]);
    }
    %>
    </script>
      

  12.   

    高手已经说得很好,给各提醒:
    1、请分清服务端(java)与客户端(javascript)的代码
    2、如果你学过asp,原理是一样的
      

  13.   

    ??
    怎么把分都给我了啊
    我写得不好,而且还有错误的
    <% for(int i = 0; i < jspArray.length(); i++) %>
    应该是
    <% for(int i = 0; i < jspArray.length; i++) %>
      

  14.   

    yaray(雅睿),beyond_xiruo(J2EE苏鸿ASP.NET) 
    请进这个帖子跟贴
    http://expert.csdn.net/Expert/TopicView1.asp?id=2134390