Struts与JFreeChart的整合

来源:互联网 发布:自然搜索排名优化 编辑:程序博客网 时间:2024/06/03 22:44

一: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的整合的方法类似

原创粉丝点击