如果您需要使用 a String[][],则需要遍历passedInArray服务器端的行。
var dataArray = new Array();
<c:forEach var="row" items="${passedInArray}">
dataArray.push(['${row[0]}', '${row[1]}', '${row[2]}']);
</c:forEach>
另一种方法是将您的数组序列化为 JSON 字符串。有像Jackson和Gson这样的优秀 Java 库可用于这项工作。基本上,它们将完成与您编写这样的代码相同的操作:
StringBuffer sb = new StringBuffer("[");
for (int i = 0; i < dataArray.length; i++) {
sb.append("[");
for (int j = 0; j < dataArray[i].length; j++) {
sb.append("'" + dataArray[i][j] + "'");
if (j < dataArray[i].length-1)
sb.append(',');
}
sb.append("]");
if (i < dataArray.length-1)
sb.append(',');
}
sb.append("]");
request.setAttribute("passedInArray", sb.toString());
然后在您的 jsp 中,您只需将其声明为 javascript 变量并使用它:
var dataArray = ${passedInArray};
console.log(dataArray.length);
console.log(dataArray[0].length);
无论如何,您都需要在服务器端进行工作,将您的 java 数组转换为 javascript 可以直接使用的 String(s)。