我正在尝试让servlet将一个数组数组返回到我的javascript jquery代码中。我遇到的问题是,如果我想在jQuery中拥有一个数组数组,我必须说
var derpArray[0] = new array();
这引起了一个问题,因为我可能不知道我将从服务器返回多少行。目前我正在尝试让我的servlet返回一个数组数组,分配给一个javascript变量,然后从值中创建一个表。任何提示将不胜感激。
以下是我的代码:
Java Servlet:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String[][] sourceFiles = null;
System.out.println("PING");
try{
sourceFiles = WebAppDB2Connector.getTopRows(5);
}
catch (Exception e)
{
SimpleLogger.logInfo("Error retrieving data..." + e.getMessage());
}
Gson gson = new Gson();
String json = gson.toJson(sourceFiles);
response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");
response.getWriter().write(json);
System.out.println("end");
}
JavaScript的:
window.onload = load;
function load(){
$.getJSON("http://localhost:9194/MyWebApplication/SourceFile", function(sourceFileData) {
var table = $("<table></table>");
for (var i = 0; i < sourceFileData.length; i++)
{
var line = $("<tr></tr>");
for (var j = 0; j < sourceFileData[i].length; j++)
{
line.append( $(cell).html('<td>' + sourceFileData[i][j] + '</td>'));
}
table.append(line);
}
table.appendTo( $("#sourceFileTable"));
});
document.getElementById("test").innerHTML = "LOL";
}
答案 0 :(得分:1)
编辑。
我怀疑你的servlet会起作用。如果是,那将是coincidence。您可能需要某种JSON库来与您的servlet一起使用。 json.org/提供了一个简单的JSON库,它可能足以满足您的需求。有关更多高级功能,您可以查看Jackson或JSONSimple等库。
在前端,您还需要将您的逻辑添加为get()
函数的回调,因为它是异步的(因为您正在计划,因此最好使用getJSON发回JSON)。并且你需要在innerloop中增加'sourceFileData'的索引,而不是将其硬编码为0:
$.getJSON("http://localhost:13839/MyWebApplication/SourceFile", function(sourceFileData) {
var table = $("<table></table>");
for (var i = 0; i < sourceFileData.length; i++)
{
var line = $("<tr></tr>");
for (var j = 0; j < sourceFileData[i].length; j++)
{
line.append( $(cell).html('<td> + sourceFileData[i][j] + '</td>'));
}
table.append(line);
}
table.appendTo( $("#sourceFileTable"));
});