struts2 迭代器值到 javascript 数组

struts2 iterator values into javascript array

专家,我这里有个情况。我有 String[] 的 ArrayList(Struts2 操作 class 中的字符串数组的 ArrayList,我将这些值迭代到 javascript 以将这些值作为二维数组传递给 google 使用

绘制图表
var twodarray = ["<s:iterator value='res' status='status'>[<s:property/>]<s:if test='#status.last==false'>,</s:if></s:iterator>"];

然后使用

将该二维数组传递到google图中
var data = google.visualization.arrayToDataTable(twodarray);

图google如何接受参数例如

var data = google.visualization.arrayToDataTable([
     ['Month', 'Electronic', 'Electric'],
     ['2017/03',  400,      290],
     ['2017/04',  450,      275]
  ]);

当我使用

var data = google.visualization.arrayToDataTable(twodarray);

图表没有显示出来,但是当我显示 twodarray 的值或提醒 twodarray 时,它会给我准确的二维数组数据,如下所示。

var twodarray=[['Month', 'Electronic', 'Electric'],['2017/03',  400,      290],['2017/04',  450,      275]];

我想知道变量 twodarray 如何将值作为二维数组传递给 javascript 功能。它是作为字符串传递的吗?我试图将它作为二维数组传递。

你的变量声明

var twodarray = ["<s:iterator value='res' status='status'>[<s:property/>]<s:if test='#status.last==false'>,</s:if></s:iterator>"];

包含迭代器不需要的 " - 因此它们可能最终出现在您的 javascript 变量中,使其成为一个字符串数组 - 或者更准确地说是一个包含一个字符串的数组。

删除 " 应该是诀窍:

var twodarray = [<s:iterator value='res' status='status'>[<s:property/>]<s:if test='#status.last==false'>,</s:if></s:iterator>];

同意 Jan 的解决方案。 一个建议,我将以这种方式创建 JS 数组:

var twodarray = [];
<s:iterator value='res' status='status'>
    twodarray.push([<s:property/>]);
</s:iterator>

它使它在您的模板和 HTML 中更具可读性(没有繁重的昏迷条件和嵌套括号)

var twodarray = [];
twodarray.push(['Month', 'Electronic', 'Electric']);
twodarray.push(['2017/03',  400,      290]);
twodarray.push(['2017/04',  450,      275]);