如何将 JSP 中的 ResultSet 传递给 Javascript
Posted
技术标签:
【中文标题】如何将 JSP 中的 ResultSet 传递给 Javascript【英文标题】:How to Pass ResultSet in JSP to Javascript 【发布时间】:2016-04-07 14:22:58 【问题描述】:我在尝试将我的 JSP 页面中的 ResultSet 传递给同一页面上的 javascript 部分时遇到问题。
我尝试了以下方法
ResultSet rs1 = st.executeQuery("SELECT * FROM Termine");
List<String> list1 = new ArrayList();
List<String> list2 = new ArrayList();
while(rs1.next())
String veranName = rs1.getString(1);
String terminid = rs1.getString(2);
list1.add(veranName);
list2.add(terminid);
String jName = (new JSONArray(list1)).toString();
String jId = (new JSONArray(list2)).toString();
但是没有用。
我也尝试过使用 JQuery 之类的东西
$(document).ready(function()
var jIdArray = <%= jId %>
$.each( jIdArray, function(i, l)
alert( "Index #" + i + ": " + l );
);
);
$(document).ready(function()
var jNameArray = <%= jName %>
$.each( jNameArray, function(i, l)
alert( "Index #" + i + ": " + l );
);
);
这也不起作用。
JavaScript 函数:
function insertIntoTable()
var len = jIdArray.length;
for (i = 0; i < len; i++)
var vname = jIdArray[i];
var vid = jNameArray[i];
document.getElementById(vid).innerhtml=vname;
有人看到我的错误或对我的问题有更好的解决方案吗?
【问题讨论】:
【参考方案1】:您可以使用这种方式准备 JavaScript 数组:
<script>
var jIdArray = new Array(
<%
out.print("\"" + list2.get(0) + "\"");
for(int i = 1; i < list2.size(); i++)
out.print(", \"" + list2.get(i) + "\"");
%>
)
var jNameArray = new Array(
<%
out.print("\"" + list1.get(0) + "\"");
for(int j = 1; j < list1.size(); j++)
out.print(", \"" + list1.get(j) + "\"");
%>
)
// work with JavaScript arrays here
</script>
更新。不确定你想做什么,但如果你在服务器端正确准备了 JavaScript 数组(如上所示),这是一个工作示例。
var jIdArray = new Array("value1", "value2");
var jNameArray = new Array("value3", "value4");
$(document).ready(function()
$.each(jIdArray, function(i, l)
alert( "Index #" + i + ": " + l );
);
$.each(jNameArray, function(i, l)
alert( "Index #" + i + ": " + l);
);
);
jsfiddle 在这里。
【讨论】:
如果我在使用您的代码之前对我的数组进行 syso,我会得到: ["value1","value2"] 您的代码是做什么的? JavaScript不能用这种Array吗? 我知道,但我无法将我的 java 数组传递给 javascript。 问题是:我已经在 Java 代码中获得了我的 ResultSet,这意味着它正在服务器端执行。如果我尝试在我的 Javascript 代码中使用它,它就不起作用。因为 Javascript 部分甚至找不到数组。您所做的只是在 Javascript 中定义它们并在那里使用它们。但是我在 Java 部分中用我的 ResultSet 定义了它们,并尝试在 Javascript 中使用它。感谢您的努力以上是关于如何将 JSP 中的 ResultSet 传递给 Javascript的主要内容,如果未能解决你的问题,请参考以下文章
如何将 Struts 2 动作类中的 InputStream 值传递给 JSP 页面中的 Ajax 并将该值转换为 JSON 数组