0

在 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 对象。

4

1 回答 1

0

您的解决方案对我来说看起来不错。我认为您担心的问题是您必须修改您的 Series 构造函数,因为您想调整其中一个系列设置。

另一种方法是在您的 Series 对象上添加方法以修改各种设置:

Series s = new Series("Series1", chartDao.getData1());
s.setColor("blue");
s.setType("column");
s.setYAxis(0);
...
series.add(s);

这样,您只需为需要它的那些系列调用新方法,而不是修改每个系列的构造函数(例如,列可以是默认类型)。

或者,您可以在此处查看一些现有的 highcharts 包装器:http ://www.highcharts.com/download 。那里至少列出了一个 java 包装器。

于 2013-03-13T09:13:55.387 回答