1

struts2-jquery-chart-plugin-3.2.1 を使用しています。リストが取り込まれた棒グラフを表示したいと思います。

これが私のコードです:

アクション クラス:

public class FinancialChartAction extends ActionSupport{
    private List<FinChartModel> wholeChartModels;

    @SkipValidation
    @Action(value = "getFinancialChartData", results = {
        @Result(name = "success", type = "json", params = {
            "wholeChartModels"
        })}){
        wholeChartModels = new ArrayList<FinChartModel>();     
        wholeChartModels.add(new FinChartModel("2020/01/01", 1000));
        wholeChartModels.add(new FinChartModel("2020/01/02", 2000));
        wholeChartModels.add(new FinChartModel("2020/01/03", 3500));
        wholeChartModels.add(new FinChartModel("2020/01/04", 550));

}

    public List<FinChartModel> getWholeChartModels() {
        return wholeChartModels;
    }
}

モデルクラス:

    private String registerDate;
    private Long sellValue;

    public String getRegisterDate() {
        return registerDate;
    }

    public void setRegisterDate(String registerDate) {
        this.registerDate = registerDate;
    }

    public Long getSellValue() {
        return sellValue;
    }

    public void setSellValue(Long sellValue) {
        this.sellValue = sellValue;
    }

    FinChartModel(String registerDate,Long sellValue){
        this.registerDate = registerDate;
        this.sellValue = sellValue;
    }

JSP:

<div id="gain_chart">
    <sjc:chart
        id="chartAjaxTwo"
        cssStyle="width: 600px; height: 400px;">
        <sjc:chartData
            dataType="json"
            id="chartAjaxTwoData2"
            label="List -ListValue-"
            href="%{getFinancialChartData}"
            list="wholeChartModels"
            listKey="registerDate"
            listValue="sellValue"
            bars="{show : true, barWidth: 0.7}"
            />
    </sjc:chart>
</div>

ご覧のとおり、グラフの x 軸に文字列を表示したいと考えています。この構成では、棒グラフにデータが表示されませんでした。棒グラフの x 軸として文字列を使用することは可能ですか? はいの場合、私のコードの何が問題になっていますか?

4

1 に答える 1

0

タグにデータを取得するために間違った URL を使用しているため、棒グラフにデータが表示されませんでしたchartDatachartDataタグでは、Ajax を使用してデータを取得しています。したがって、許容可能な形式でデータを返す URL を参照する必要があります。あなたの場合、データ型 JSON を使用していました。あなたのアクションクラスには、タイプjsonの結果を返すようなアクションがあります。クラスパスで使用可能なjsonプラグインが必要です。使用できるアクションの URL を作成するには

<s:url var="chartDataUrl" action="getFinancialChartData"/>

次に、chartDataタグで参照します

href="%{#chartDataUrl}"

デフォルトでは、json の結果topは、シリアル化された json オブジェクトからオブジェクトを返しValueStack、Struts はそれにアクション インスタンスを配置します。

@Result(name = "success", type = "json")

そして、list属性は、対応する getter を持つアクション クラスの変数にバインドされます。オブジェクトのリストを使用し、デフォルトでゲッターを使用してオブジェクト変数にバインドされるためですlistKeylistValue

struts2-jquery-chart のバージョンを更新しFlotて、プラグインによってチャートを描画するために使用されるライブラリを含める必要があることにも注意してください。詳細については、この回答を参照してください。

于 2020-12-29T07:22:09.257 に答える