如何在Java代码中使用javascript中声明的变量?

时间:2018-01-13 15:48:49

标签: javascript java html sqlite jsp

我正在建立一个使用SQLite从数据库获取数据的网站。为了连接到数据库,我在jsp文件中使用以下Java代码。

<%
     String[] nameArray;
     nameArray = new String[10];

     Class.forName("org.sqlite.JDBC");
     Connection conn =
        DriverManager.getConnection("jdbc:sqlite:d:\\Databases\\DataBase1.db");
     Statement stat = conn.createStatement();

     ResultSet rs = stat.executeQuery("select * from users;");

     int i = 0;
     while (rs.next()) {
         nameArray[i] = rs.getString("name");
         i++;
     }

     rs.close();
     conn.close();
%>

它创建一个存储数据库信息的数组。

接下来,我有这个Javascript代码,它应该将我的页面中的元素更改为前一个数组的值

<script type="text/javascript">
    var nameField = document.getElementById("nameField");
    var passwordField = document.getElementById("passwordField");
    var admin; 

    function CheckName() {
        for(j = 0; j < 10; j++) {
            document.getElementById("result").innerHTML = "<%=nameArray[j]%>";  //ERROR here, I can not use "j" as a value
        }
    }
</script>

问题是,我不能将“j”变量用作数组指示符。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

这就是我要做的,因为在java中不可能使用javascript变量。 Let List是数据库中的结果。如果您不使用看似使用的表达式语言(el),只需将代码放在您希望显示结果的位置。

不要忘记以下列方式将List和ArrayList导入到jsp中

 <%@ page import ="java.util.ArrayList"%>
  <%@ page import ="java.util.List"%>



<% List<String> list = new ArrayList<>();
    list.add("Name1");
    list.add("Name2");
    list.add("Name3");
%>

<% for(int j=0; j < list.size(); j++){ %>
    <p id="result"><%=list.get(j)%></p>
<%}%>`