我正在尝试使用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>
我认为也许饼图不支持这种调用,但没有任何关于此的记录 提前感谢您的帮助,因为我不想转移到另一个插件。