`
橄榄绿
  • 浏览: 277240 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JFreChart与Struts2的组合

阅读更多

jFreeChartStruts2的组合:
    一,加入Struts2支持
    二,加入struts2-jfreechart-plugin-2.1.6.jar
        注意:有的版本的此包有点小问题,此包内有一个struts-plugin.xml内容如下:

 

Xml代码

 

<struts>
            <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>
      
        </struts>

 

 三,在action中生成我们的图片报表

 

java代码

 

 

/**
         * 生成图形报表
         *
         * @author 张明学
         *
         */
        @SuppressWarnings("serial")
        public class ViewResultAction extends ActionSupport {
      
            /**
             * 这里的JFreeChart的变量名称必须是chart(这是jfreeChart插件不足的地方)
             */
            private JFreeChart chart = null;
      
            private List<String> interest = null;
      
            @SuppressWarnings("unchecked")
            @Override
            public String execute() throws Exception {
                ActionContext context = ActionContext.getContext();
                Map application = context.getApplication();
      
                for (String inter : interest) {
                    if (application.get(inter) == null) {
                        application.put(inter, 1);
                    } else {
                        application.put(inter, (Integer) application.get(inter) + 1);
                    }
                }
                DefaultCategoryDataset dataset = new DefaultCategoryDataset();
                dataset.setValue((Integer) application.get("football"), "", "足球");
                dataset.setValue((Integer) application.get("volleyball"), "", "排球");
                dataset.setValue((Integer) application.get("basketball"), "", "蓝球");
                dataset.setValue((Integer) application.get("badminton"), "", "羽毛球");
                // 设置标题样式
                chart = ChartFactory.createBarChart3D("兴趣统计结果", "项目", "结果", dataset,
                        PlotOrientation.VERTICAL, true, 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, 20));
                categoryAxis.setCategoryLabelPositions(CategoryLabelPositions.UP_45);
                // 设置垂直方向的样式
                NumberAxis numberAxis = (NumberAxis) plot.getRangeAxis();
                numberAxis
                        .setLabelFont(new Font("仿宋", Font.LAYOUT_NO_LIMIT_CONTEXT, 18));
                // 获得报表下面部分
                // chart.getLegend();
      
                return SUCCESS;
            }
      
            public List<String> getInterest() {
                return interest;
            }
      
            public void setInterest(List<String> interest) {
                this.interest = interest;
            }
      
            public JFreeChart getChart() {
                return chart;
            }
      
            public void setChart(JFreeChart chart) {
                this.chart = chart;
            }
      
        }

 

四,struts.xml中的配置:

 

Xml代码

 

<struts>
            <package name="mengya" extends="jfreechart-default">
                <action name="viewResult" class="com.mengya.action.ViewResultAction">
                    <result name="success" type="chart">
                        <!-- 指定图形报表的大小 -->
                        <param name="height">600</param>
                        <param name="width">800</param>
                    </result>
                </action>
            </package>
        </struts>

 

 

注意:由于在第二步的时候将jfreechart-default包继承了struts-default故这里可以直接继承jfreechart-default
        这样做的目地是result的type类型为chart,这个类型在struts-default中没有定义,是jreechart-default中定义的
        故我们要引入jfreechart-default包,但又要引入struts-default,因此我们可以让jfreechart-default包继承了struts-default。
        而在struts.xml中继承jfreechart-default就可以了!

分享到:
评论

相关推荐

    Struts2漏洞检查工具Struts2.2019.V2.3

    Struts2是一款非常流行的Java Web框架,用于构建企业级应用。然而,随着时间的推移,Struts2在安全方面暴露出了一些重要的漏洞,这给使用该框架的系统带来了潜在的安全风险。"Struts2漏洞检查工具Struts2.2019.V2.3...

    struts2小程序 struts2代码

    在`AndroidTest`这个文件名中,虽然不明确,但可能包含了一个Android相关的测试部分,或者是一个使用Struts2实现的接口,用于与Android客户端交互。如果涉及到Android,可能需要了解RESTful API设计、JSON数据交换...

    struts2jar包

    5. **struts2-plugins*.jar**:Struts2有许多插件,如struts2-dojo-plugin.jar用于与Dojo库集成,提供富客户端功能;struts2-junit-plugin.jar则帮助进行单元测试。这些插件根据实际需求选择引入。 6. **其他依赖的...

    struts2-core.jar

    struts2-core-2.0.1.jar, struts2-core-2.0.11.1.jar, struts2-core-2.0.11.2.jar, struts2-core-2.0.11.jar, struts2-core-2.0.12.jar, struts2-core-2.0.14.jar, struts2-core-2.0.5.jar, struts2-core-2.0.6.jar,...

    struts1和struts2的区别

    ### Struts1与Struts2的主要区别 #### 概述 Apache Struts 是一个用于构建企业级Java Web应用的开源框架。它分为两个版本:Struts1 和 Struts2。虽然两者都基于模型-视图-控制器(MVC)设计模式,但它们之间存在...

    Hibernate与Struts2和Spring组合开发实例

    【标题】"Hibernate与Struts2和Spring组合开发实例"涉及的是Java企业级应用开发中的核心技术栈,也就是著名的SSH(Spring、Struts2、Hibernate)框架的整合使用。这三个框架分别在应用程序的不同层面发挥关键作用,...

    Struts2接口文档

    此外,Struts2还支持OGNL(Object-Graph Navigation Language)表达式语言,用于在Action与视图之间传递数据。开发者可以通过OGNL在JSP页面上动态访问Action中的属性,或者在Action中设置模型数据。 “Struts2.3.1.2_...

    Struts2漏洞测试

    Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试...

    struts2项目开发

    Struts2 项目开发 Struts2 是一个基于 Java Web 的框架,广泛应用于 Web 应用程序的开发。下面将从 Struts2 项目开发的角度,详细介绍 Struts2 框架的应用、开发流程、技术架构、实践经验等方面的知识点。 项目...

    Struts2+Jquery+Ajax

    总的来说,Struts2+Jquery+Ajax的组合使得开发者能够构建出交互性强、响应速度快的Web应用。通过理解MVC模式、熟练掌握Struts2的配置和Action处理、灵活运用Jquery和Ajax,可以大大提高开发效率,提升用户使用体验。...

    Struts2视频教程

    - **定义与特点**:Struts2是一款基于MVC(Model-View-Controller)设计模式的Java Web应用程序框架,它继承了Struts1的优点,同时在设计上更加灵活、易用,支持拦截器、类型转换、文件上传等特性。Struts2使用过滤...

    struts2 API帮助文档

    Struts2是一个强大的Java web应用程序框架,用于构建MVC(模型-视图-控制器)架构的应用。这个API帮助文档是开发者在使用Struts2框架时的重要参考资料,它详细阐述了框架的各种组件、类库和方法,有助于理解并有效...

    struts2 总结工程大全

    struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全...

    Struts2教学视频

    此外,Struts2还支持多种视图技术如JSP、FreeMarker、Velocity等,并能与Spring、Hibernate等其他框架无缝集成,提高开发效率。 **二、搭建Struts2的运行环境** 搭建Struts2环境通常包括以下几个步骤: 1. 引入...

    Struts2VulsTools-Struts2系列漏洞检查工具

    该工具的打开路径为:\Struts2VulsTools-2.3.20190927\Test\bin\Release\Text.exe 2019-09-25: 优化部分EXP在部分情况下被WAF拦截的问题,提高检测成功率,优化自定义上传路径exp,文件所在目录不存在时自动创建...

    struts2-showcase.rar

    8. **Ajax支持**:展示了Struts2与jQuery的集成,实现异步请求。 9. **RESTful风格**:如何构建符合REST原则的URL和Action。 10. **S2-005安全漏洞**:Struts2-showcase还包含了一些已知的安全漏洞实例,用于教育...

    转:struts1与struts2的区别

    ### Struts1与Struts2的主要区别 #### 1. Action类的设计差异 - **Struts1**: 在Struts1框架中,Action类必须继承自一个抽象类`org.apache.struts.action.Action`。这种方式可能导致的问题是代码灵活性较低,尤其...

    struts2讲义 struts2讲义struts2讲义struts2讲义struts2讲义

    #### 一、Struts2的历史与发展 - **Struts框架的发展历程**: - Struts最初版本发布于2000年,是Java Web开发领域的一个重要里程碑。 - 随着时间的发展和技术的进步,Struts逐渐暴露出一些局限性,如耦合度高、...

    struts2帮助文档

    struts2与AJAX一 struts2与AJAX二 struts2与AJAX三 struts2中用Spring实现IOC struts2中的零配置与IOC struts2介绍之使用连接标签 struts2入门 struts2进阶学习一 struts2进阶学习二 struts2进阶学习三 struts2进阶...

    对struts1.x与struts2.x的区别的总结

    - **Struts2.x** 基于拦截器(Interceptor)模式,提供更灵活的控制流,可以组合多个拦截器来实现复杂的业务逻辑。 2. **动作类(Action Class)**: - **Struts1.x** 的动作类需要继承自Struts的Action类,并且...

Global site tag (gtag.js) - Google Analytics