【发布时间】:2012-05-10 14:49:23
【问题描述】:
我正在使用 jqPlot “AJAX JSON 数据渲染器”,如:http://www.jqplot.com/tests/data-renderers.php 中所述。
我的服务器端是 Spring MVC。在服务器上,我渲染了一个 Object[][] 矩阵,矩阵的每一行包含 2 个对象:[LocalTime.toString(“HH:mm”), Integer]。响应返回为“@ResponseBody”
我可以看到数据是从服务器检索的,当我在警报中显示它时,我看到以下内容:
[["09:00",5],["09:30",5],["10:00",5],["10:30",5],["11:00",10],["11:30",10],["12:00",10],["12:30",10],["13:00",5]]
我还尝试使用 List<List<Object>> 而不是数组。
我无法让它工作。我得到的只是一张空图表。
这是javascript:
<script>
$(document).ready(function(){
var ajaxDataRenderer = function(url, plot, options) {
var ret = null;
$.ajax({
async: false,
url: url,
dataType:"json",
success: function(data) {
ret = data;
}
});
alert("OUT: " + ret);
return ret;
};
var jsonurl = "chartData";
var plot2 = $.jqplot('chart', jsonurl,{
dataRenderer: ajaxDataRenderer,
dataRendererOptions: {
unusedOptionalUrl: jsonurl
}
});
});
</script>
我在这里看到JSON for jqPlot,每个人都建议构建一个字符串并解析它。这是唯一的方法吗?
我还查看了几个类似的问题,但找不到答案。
将不胜感激任何提示...
【问题讨论】:
-
根据数据渲染器文档,jsonurl应该有ajax url,而不是“chartData”......这是从哪里来的?
-
很可能正如@Rodik 所说,您的
url无效。在您的 Web 应用程序的上下文中,chartData 的真正含义是您的 servlet 的名称吗?尝试在FireFox中运行您的应用程序,看看url looks like inFirebug` 的效果如何,然后看看它是否与您的servlet 的url匹配。 -
chartData 是在我的控制器中映射到返回 Object[][] 矩阵的方法的 http url。 “ajax url”是什么意思?收到回复后,我认为这不是问题所在。
-
Meron 如果您收到响应并且格式正确,那么您是对的,那么
url就可以了。我确信通过 ajaxurl@Rodik 意味着url你给你的ajax请求。另请查看我的回答,我认为这一定是您遇到的问题。
标签: javascript spring-mvc jqplot