Java 是否可以使用Struts2 jQuery图表插件制作带有字符串X轴的条形图?
我正在使用struts2-jquery-chart-plugin-3.2.1。我想显示一个由列表填充的条形图 这是我的密码: 动作类:Java 是否可以使用Struts2 jQuery图表插件制作带有字符串X轴的条形图?,java,jquery,struts2,struts2-jquery,struts2-jquery-chart,Java,Jquery,Struts2,Struts2 Jquery,Struts2 Jquery Chart,我正在使用struts2-jquery-chart-plugin-3.2.1。我想显示一个由列表填充的条形图 这是我的密码: 动作类: public class FinancialChartAction extends ActionSupport{ private List<FinChartModel> wholeChartModels; @SkipValidation @Action(value = "getFinancialChartData&
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;
}
<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>
JSP:
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;
}
<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轴?如果是,我的代码有什么问题?您无法在条形图上看到任何数据,因为您使用了错误的URL将数据获取到
chartData
标记。在chartData
标记中,您使用Ajax获取数据。因此,您应该引用以可接受格式返回数据的URL。在您的例子中,您使用的是数据类型JSON。在action类中,有这样一个返回json类型结果的action。类路径上应该有可用的json插件。为您可以使用的操作生成URL
<s:url var="chartDataUrl" action="getFinancialChartData"/>
默认情况下,json结果将ValueStack
中的top
对象序列化为json对象,Struts将操作实例放入其中
@Result(name = "success", type = "json")
并且list
属性绑定到action类的变量,该变量具有相应的getter。由于使用了对象列表,因此默认情况下,listKey
和listValue
都是使用getter绑定到对象变量的
另请注意,struts2 jquery图表的版本应更新为包含
Flot
库,该库用于插件绘制图表。有关更多详细信息,请参阅答案。您无法在条形图上看到任何数据,因为您使用了错误的URL将数据获取到chartData
标记。在chartData
标记中,您使用Ajax获取数据。因此,您应该引用以可接受格式返回数据的URL。在您的例子中,您使用的是数据类型JSON。在action类中,有这样一个返回json类型结果的action。类路径上应该有可用的json插件。为您可以使用的操作生成URL
<s:url var="chartDataUrl" action="getFinancialChartData"/>
默认情况下,json结果将ValueStack
中的top
对象序列化为json对象,Struts将操作实例放入其中
@Result(name = "success", type = "json")
并且list
属性绑定到action类的变量,该变量具有相应的getter。由于使用了对象列表,因此默认情况下,listKey
和listValue
都是使用getter绑定到对象变量的
另请注意,struts2 jquery图表的版本应更新为包含
Flot
库,该库用于插件绘制图表。有关更多详细信息,请参阅答案。Struts2 jQuery图表插件的版本太旧。您应该更新插件,以便能够在条形图上绘制x轴字符串。Struts2 jQuery图表插件的版本太旧。您应该更新插件,以便能够在条形图的x轴上绘制字符串。