使用struts2 jquery创建AJAX饼图

时间:2014-01-08 14:10:54

标签: jquery ajax struts2 pie-chart struts2-jquery

我正在尝试使用struts2 jquery实现一个饼图。这个饼图应该是动态的,调用AJAX方法,我googled很多,并尝试了这么多标签。但只要对象未填充且没有通过代码中设置的迭代器,就没有结果 虽然我可以使用here

中给出的样本创建相同的图表

我的行动类

private Map<Double, Double> doubleMap;
public String execute()
{
doubleMap = new TreeMap<Double, Double>();
Random generator = new Random();
for (int i = 1; i <= 24; i++)
{
  doubleMap.put(Double.valueOf("" + i), generator.nextDouble() * 10.0);
}
  public Map<Double, Double> getDoubleMap()
{
return doubleMap;
}
public void setDoubleMap(Map<Double, Double> doubleMap)
{
this.doubleMap = doubleMap;
}

在我的jsp代码中如下:

<s:url id="url3" action="account-summary-chart-data-provider"
    namespace="account" />
<sjc:chart id="chartPie2" cssStyle="width: 300px; height: 200px;"
    legendShow="false">
    <sjc:chartData label="Map -Double, Double-" href="%{url3}"
        list="doubleMap" />
</sjc:chart>

当我在我的页面中有另一个json调用时,它工作正常 但它似乎不适用于动态饼图。根据文档和示例here的静态调用工作正常,当我有这样的java代码时:

<sjc:chart
    id="chartPie"
    cssStyle="width: 600px; height: 400px;"
    pie="true"
    pieLabel="true"
 >
    <sjc:chartData
            id="pieSerie1"
            label="Serie 1"
            data="10"
    />
    <sjc:chartData
            id="pieSerie2"
            label="Serie 2"
            data="3"
    />
    <sjc:chartData
            id="pieSerie3"
            label="Serie 3"
            data="17"
    />
    <sjc:chartData
            id="pieSerie4"
            label="Serie 4"
            data="37"
    />
</sjc:chart>

但这不符合我的需要。因为我需要动态调用,而我的jsp页面中还有另一个json调用。所以不工作的java类如下:

@Action(value = "account-summary-chart-data-provider", results = { @Result(name = "success", type = "json") })
public String chartDataProvider() throws ClientException {
    pieDataMap = new TreeMap<String, Integer>();
    pieDataMap.put("Java", 18);
    pieDataMap.put("C", 17);
    pieDataMap.put("C++", 10);
    pieDataMap.put("PHP", 8);
    pieDataMap.put("(Visual) Basic", 6);
    pieDataMap.put("C#", 5);

    return SUCCESS;
}

并在jsp页面中调用如下:

    <s:iterator value="pieDataMap" href="%{url3}">
    <sjc:chartData id="A" label="%{key}" data="10" />
</s:iterator>

甚至我尝试没有像list标签那样的迭代器。

<s:url id="url3" action="account-summary-chart-data-provider"
namespace="account" />${url3}
   <sjc:chart id="chartPie2" cssStyle="width: 300px; height: 200px;"
legendShow="false" pie="true">
<sjc:chartData href="%{url3}"
    list="pieDataMap"/>

</sjc:chart>

我认为也许饼图不支持这种调用,但没有任何关于此的记录 提前感谢您的帮助,因为我不想转移到另一个插件。

0 个答案:

没有答案