我认为在 javascript 源代码中打印来自 jsp 的双向字符串集合的 toString 不是一个好主意。这是创建传输/表示语言的目的之一。出于这个原因,我建议打印该二维集合的 JSON 表示。您需要在 JavaScript 源代码中,String 的二维数组是:
[["A", "D"], [, "E"], ["B"], [], [], ["C"]]
注意双引号,这些很重要,没有这些,生成的 javascript 数组是变量(A、D、E、B、C)的二维数组。
例如,使用 Gson(谷歌 json 库),在 Java 中我会像这样创建 formData:
Gson gson = new Gson();
String toPrintInTheJSP = gson.toJson(<your Java bidimensional collection of strings here>);
在 JSP 中我会输出:
var myData = ${formData}; //without the double quotes
var i=0, j=0;
alert(myData[i][j])
如果您需要循环浏览 JSP 中的集合(这意味着在生成标记时(我引用,“我尝试将 formdata 分配给一个变量并使用如下索引在 JSP 中访问它:[...]”),有执行此操作的不同方法,例如 scriptlet 或 JSTL。
我不太确定您必须做什么,您在问题中使用的术语有点不精确。我认为您需要在由 JSP 编写的二维数组上循环使用 JavaScript。
如果必须在 JavaScript 中循环遍历数组,则需要一个嵌套循环,如下所示:
var myData = [["A", "D"], [, "E"], ["B"], [], [], ["C"]];
for (var i = 0; i < myData.length; i++){
for(var j = 0; j < myData[i].length; j++){
alert(myData[i][j]);
}
}