在HighChart页面的支持bean中,我查询数据库并设置图表数据:
series.add(new Series("Series1", chartDao.getData1()));
series.add(new Series("Series2", chartDao.getData2()));
setChartData(new Gson().toJson(series)); //For HighCharts
系列是具有name
和data
属性的pojo。
在HighChart部分的chart.xhtml中我有
chart: { type: column,
...
series: $.parseJSON(${chartController.chartData})
这有效但现在我想发送另一组叠加为样条曲线的系列。
我修改了我的Series对象以包含颜色和类型,然后在我的支持bean中
series.add(new Series("Series1", chartDao.getData1(), "blue", "column"));
series.add(new Series("Series2", chartDao.getData2(), "red", "column"));
series.add(new Series("Series3", chartDao.getData3(), "yellow", "spline"));
series.add(new Series("Series4", chartDao.getData4(), "green", "spline"));
这也有效,但这是正确的方法吗?我想知道是否有更好的方法,因为我想调整我的图表,似乎我必须修改我的Series对象。
答案 0 :(得分:0)
您的解决方案对我来说非常好。我认为你担心的问题是你必须修改你的Series构造函数,因为你想调整其中一个系列设置。
另一种方法是在Series对象上添加methonds来修改各种设置:
Series s = new Series("Series1", chartDao.getData1());
s.setColor("blue");
s.setType("column");
s.setYAxis(0);
...
series.add(s);
这样,您只需要为需要它的那些系列调用新方法,而不是修改每个系列构造函数(例如,列可以是默认类型)。
或者,你可以在这里查看一些现有的高图表包装:http://www.highcharts.com/download。这里至少列出了一个java包装器。