struts2与jfeechart整合相关有关问题

struts2与jfeechart整合相关问题
1:struts2版本低,它的struts-jfreechart-plugin.jar中文件struts-plugin.xml中定义的包没有继承struts-default
源文件如下:
  <package name="jfreechart-default"  >   	<result-types>
    		<result-type name="chart" class="org.apache.struts2.dispatcher.ChartResult">
    			<param name="height">150</param>
    			<param name="width">200</param>
    		</result-type>
    	</result-types>
    </package>

解决办法:解压jar文件,将struts-plugin.xml改为
  <package name="jfreechart-default" extends="struts-default">
    
    	<result-types>
    		<result-type name="chart" class="org.apache.struts2.dispatcher.ChartResult">
    			<param name="height">150</param>
    			<param name="width">200</param>
    		</result-type>
    	</result-types>
    </package>

然后用jar命令打包;注意:在开发工具中不可直接修改
2.action编写问题
①action中必许声明private JFreeChart chart,及getter方法,字段名必须chart
②乱码问题,建议将出现汉字的地方(plot,legend,xAxis,yAxis)设置为系统汉字字体,具体代码见文件,setTickLabelFont才是设置x轴字体的方法,
③不能将取出数据的加进数据集的方法写成:
for(String interest : interests){
System.out.println(context.get(interest));
data.addValue((Integer)context.get(interest), interest , interest); }
而是
	data.addValue((Integer) context.get("football"), "足球", "足球");
		data.addValue((Integer) context.get("volleyball"), "排球", "排球");
		data.addValue((Integer) context.get("basketball"), "篮球", "篮球");
		data.addValue((Integer) context.get("badminton"), "羽毛球", "羽毛球");

因为:不是每次取出的数据都有四个字段,这样就导致了最终形成的图表有的是三列,四列等
3.标签的用法,卡以查看相关文档,出现错误时,要仔细查看