我正在建立一个使用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”变量用作数组指示符。
我该如何解决这个问题?
答案 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>
<%}%>`