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

How to assign a java array string to a javascript array string?

本文关键字:字符串 数组 javascript 分配 java      更新时间:2023-09-26

下面是我的代码,

<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数据库系统

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循环来构建options
  • 使用JSON编码器直接从Java编写JS文字会更干净,更少乏味。这也可以避免错误(如"在您的字符串中间)
  • 你应该声明JavaScript中的变量(limit, index)