我正在制作一个网站,使用 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”变量作为数组指示符。
如何解决这个问题?
最佳答案
这就是我要做的,因为不可能在 java 中使用 javascript 变量。让列表是您从数据库中获得的结果。如果您不使用看起来的 use expression language(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>
<%}%>`
关于javascript - 如何在 Java 代码中使用 javascript 中声明的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48241465/