如何将java数组字符串分配给javascript数组字符串?

时间:2014-07-22 12:43:28

标签: java javascript arrays jsp

以下是我的代码,

<select name = "department_select">
    <script language = "javascript" type="text/javascript">
        var dept_names = [];
        var index=0,limit,it;
        <% 
        String dept_list[] = dbManager.get_dept_list();
        for(int i=0;i<dept_list.length;i++)
        {
            %>
            dept_names[<%=i%>] = <%=dept_list[i]%>;
            <%
        }
        %>
        limit = dept_list.length;
        for(index=0;index<limit;index++)
        {                       
            document.write("<option>"+dept_names[index]+                                   "</option>");        
        }
    </script>
</select>

我正在尝试创建一个下拉列表,该列表将从数据库中访问数据,并将这些数据用作jsp页面中下拉列表的选项几天。

当我的jsp页面被执行时,它会显示下拉列表,但是没有选项,只有空白。

我认为代码第10行的分配不起作用。

我尝试使用循环将java数组的每个值分配给javascript数组。

为什么这不起作用?我正在使用oracle数据库系统。

1 个答案:

答案 0 :(得分:2)

你错过了JavaScript字符串的引号。

更改

dept_names[<%=i%>] = <%=dept_list[i]%>;

dept_names[<%=i%>] = "<%=dept_list[i]%>";

或只是

dept_names.push("<%=dept_list[i]%>");

也改变

limit = dept_list.length;

limit = dept_names.length;

注意:

  • 这里没有理由循环两次,一次是Java,一次是JS。您可以使用简单的Java循环来构建选项
  • 使用JSON编码器直接从Java编写JS文字会更简洁,更乏味。这也可以避免错误(比如字符串中间的"
  • 您应该在JavaScript(limitindex
  • 中声明变量