一:Struts与JFreeChart的整合
将struts2-jfreechart-xxx.jar放入工程lib下
jsp页面
<%@ taglib prefix="s" uri="/struts-tags" %>
<s:form>
<s:checkbox name="inserest" label="足球" fieldValue="football" labelposition="left"></s:checkbox> //labelposition="left"表示标签显示在左边,不加则显示在右边
<s:checkbox name="inserest" label="篮球" fieldValue="basketball"></s:checkbox>
<s:checkbox name="inserest" label="排球" fieldValue="volleyball"></s:checkbox>
<s:checkbox name="inserest" label="羽毛球" fieldValue="badminton"></s:checkbox>
<s:checkboxlist list="#{'computer' : '计算机' , 'math' : '数学'}" name="inserest" label="请选择喜欢的课程" labelposition="top">
<s:checkboxlist>
<s:submit value="提交"/>
<s:form>
public class ViewResult extends ActionSupport {
//要使用JFreeChart,必需要有此属性,且属性名必需为chart
private JFreeChart chart;
getter; //可以不用setter;
public JFreeChart getJFreeChart() {
//参数(title, 横轴文字, 纵轴文字, 数据集, 水平还是垂直, 是否产生langed即说明, 是否产生提示, 是否产生url)
chart = ChartFactory.createBarChart("兴趣统计结果", "项目". "结果", this.getDataset(), PlotOrientation.VARTICAL, false, false, false);
//重新设置图表的标题
chart.setTitle(new TextTitle("兴趣统计结果", new Font("黑体", Font.BOLD, 22)));
CategoryPlot plot = (CategoryPlot)chart.getPlot();
CategoryAxis categoryAxis = plot.getDomainAxis();
categoryAxis.setLabelFont(new Font("宋体", Font.BOLD, 22));
//设置字体倾斜多少度
categoryAxis.setCategoryLabelPosition(CategoryLabelPositions.UP_45);
NumberAxis numberAxis = (NumberAxis)plot.getRangeAxis();
numberAxis.setLabelFont(new Font("宋体", Font.BOLD, 22));
}
private List<String> interest;
getter; setter;
public String excute() throws Exception {
}
//此方法实际中应放入业务层中
private void increaseResult(List<String>) {
ActionContext context = ActionContext.getContext();
Map map = context.getApplication();
for(String str :list) {
if(null == map.get(str)) {
map.put(str, 1);
}else {
map.put(str, (Integer)map.get(str) + 1)
}
}
}
private CategoryDataset getDataset() {
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
this.increaseResult(this.getInterset());
ActionContext context = ActionContext.getContext();
Map map = context.getApplication();
dataset.setValue((Integer)map.get("football"), "", "足球");
dataset.setValue((Integer)map.get("basketball"), "", "篮球");
dataset.setValue((Integer)map.get("valleyball"), "", "排球");
dataset.setValue((Integer)map.get("badminton"), "", "羽毛球");
retutn dataset;
}
}
强制修改一下jar文件
将struts-jfreechart-***.jar解压,修改其中的struts-plugin.xml
修改<package name="jfreechart-default">为
<package name="jfreechart-default" extends="struts-default">
cmd进入到解压后的jar文件夹中
jar cvf struts2-jfreechart-pluin-2.0.11.jar -C *
struts.xml
<package name="jfreechart-defalut">
<action name="viewResult" class="com.***.action.ViewResult">
<result-type name="success" type="chart">
<param name="height">600</param>
<param name="width">800</param>
</result>
</action>
</package>
Struts整合插件的一般方法与通过Struts与JFreeChart的整合的方法类似