0

HighChartページのバッキングBeanで、データベースにクエリを実行し、チャートデータを次のように設定します。

    series.add(new Series("Series1", chartDao.getData1()));
    series.add(new Series("Series2", chartDao.getData2()));
    setChartData(new Gson().toJson(series)); //For HighCharts

シリーズはnamedataプロパティ付きの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

あなたの解決策は私にはかなり良さそうです。あなたが心配していると思う問題は、シリーズ設定の1つを微調整したかったので、シリーズコンストラクターを変更しなければならなかったことです。

これに代わる方法は、Seriesオブジェクトにメソッドを追加して、さまざまな設定を変更することです。

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

このように、すべてのシリーズコンストラクターを変更するのではなく、それを必要とするシリーズの新しいメソッドを呼び出すだけで済みます(たとえば、列がデフォルトのタイプである可能性があります)。

または、 http://www.highcharts.com/downloadでhighchartsの既存のラッパーを確認することもできます。そこには少なくとも1つのJavaラッパーがリストされています。

于 2013-03-13T09:13:55.387 に答える