Javascript 将ArrayList传递给JQuery Flot
下午好 英语不是我的母语,所以请耐心等待 我是[see tags]的初学者,有一个web应用程序,它可以收集日期和序列来进行sql查询,并将一些数据(度量值的值和度量值的日期)返回到Action doDrawFlot,在Action中,这些数据被格式化以填充flot图 我需要一个ArrayList并将其传递给Javascript以填充flot图。 此时此刻,我有我的行动:Javascript 将ArrayList传递给JQuery Flot,javascript,jquery,jsp,struts2,flot,Javascript,Jquery,Jsp,Struts2,Flot,下午好 英语不是我的母语,所以请耐心等待 我是[see tags]的初学者,有一个web应用程序,它可以收集日期和序列来进行sql查询,并将一些数据(度量值的值和度量值的日期)返回到Action doDrawFlot,在Action中,这些数据被格式化以填充flot图 我需要一个ArrayList并将其传递给Javascript以填充flot图。 此时此刻,我有我的行动: public InputStream inputStream; public String doDrawFlot(
public InputStream inputStream;
public String doDrawFlot() {
StringBuilder response = new StringBuilder();
response.append("1_20");
response.append("2_50");
response.append("3_10");
byte[] bArray = response.toString().getBytes();
inputStream = new ByteArrayInputStream(bArray);
return SUCCESS;
}
Struts2 XML
<action name="GetProfile" class="com.raspberry.struts.action.PerfilCargaAction"
method="doDrawFlot">
<interceptor-ref name="SessionValidationStack" />
<result type="stream">
<param name="contentType">text/html</param>
<param name="inputName">inputStream</param>
</result>
</action>
没有帮到我
更新:
在@Raidri的请求下,两个控制台日志的输出:
控制台日志(响应):1\u 202\u 503\u 10
console.log(d1):[1,NaN][NaN,NaN][2,NaN][0,NaN][2,NaN][NaN,NaN][5,NaN][0,NaN][3,NaN][NaN NaN,NaN][1,NaN][NaN 0]
流发送单个字符串,我需要一个数组,因为度量值的长度可能会更改(即“102”或“0”),因为您可以看到您的d1
数组无效。例如,原始数据字符串在数据点之间需要一些分隔符
response.append("1_20;");
...
// response = "1_20;2_50;3_10"
然后,我们可以使用map()
函数构建数据数组,如下所示:
d1 = response.split(';').map(function (datapoint) {
return datapoint.split('_');
});
// d1 = [["1", "20"], ["2", "50"], ["3", "10"]]
请在成功回调函数的开头插入一个console.log(response)
,在$.plot()
调用之前插入一个console.log(d1)
,然后将结果添加到您的答案中。@Raidri感谢您的评论,问题已更新。您的答案非常有用,但不处理数组。尽管如此,我还是能够通过对你的答案进行一些“变通”来正确地绘制我的数据。如果没有其他人用数组的方法回答,我会接受你的答案。再一次谢谢,谢谢雷德利。您的回答帮助我管理两个“Yaxis”,并正确显示数据与时间的关系。
d1 = response.split(';').map(function (datapoint) {
return datapoint.split('_');
});
// d1 = [["1", "20"], ["2", "50"], ["3", "10"]]