`
yzpniceboy
  • 浏览: 967 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

伪ssh2框架集成open flash chart2全记录(一)

阅读更多

首先阐明为何是伪ssh2框架,因为这是公司的一个项目,集成了Struts2和spring3,并没有涉及到到hibernate的使用,所以暂且称它为伪SSH2框架,应为在真正的SSH2框架中使用open flash chart2的技术和在此框架是一样的。废话有点多啊、、、

    先概括下什么是open flash chart2,open flash chart 是一个用来生成flash图标的组件,2当然就是第二个版本了,目前最新版本是2.0。使用该组件可以轻松的在web 前端绘制出令人激动的flash伪动态图表(怎么都是伪的?这里指的伪是图表示可以动的,flash就可以动的啦,废话嘛),其实open flash chart是可以绘制出真正的动态图表的,动态请求新数据。
    在ssh框架要集成open flash chart2需要去官网下载open flash chart2的组件包,官网地址:http://openflashchart.com/
图片
在DOWNDOWNS标签页里选择这个包下载:
图片
这是一个包含demo的完整包,下载下来备用。
下载后解压缩,看到文件夹里有好多东西啊、、、兴奋时刻开始啦、、
图片
痛苦的学习经历就此开始了,谁让你那么想成为牛逼人物呢,就从简单的开始学吧、、、
data-files里有很多html和txt文件 ,html源码中就调用了这些txt文件作为数据来源,在此,我们明确了一点,txt文件时可以作为open flash chart的数据源的,这一点很重要,在之后遇到问题debug时会有用处。
    【最重要的上场啦】文件夹根目录里有2个文件,open flash chart.swf,和swfobject.js,从文件名上就可以看出前者是生成flash用的工具文件,后者是需要用到的javascript文件。
    这时候我们就会想到,既然open flash chart是一个组件,那么想要让java支持这个组件我们似乎还需要做点什么吧,第一个想到的必然是添加必要jar包,ssh框架使用open flash chart 必须要添加2个相关jar包,这在网上可以下载到xstream-1.3.1.jar和jofc-jofc2.jar,下载好这2个jar包后把它们加入到工程的classpath中去,这事我们想起了刚才文件夹里的2个文件open flash chart.swf,和swfobject.js,这2个文件怎么用?在看过官方demo后,我们知道,我们应该把这2个文件归档到工程中,在WebContent新建个目录,名字随便,我这里取名为ShapeReport,把这2个文件拷贝到这个文件夹下,这时候我们的开发环境是不是基本集成好了呢?我们先来看下官方demo中的html
其中有一段是这样的
<script type="text/javascript">
swfobject.embedSWF("open-flash-chart.swf", 
"my_chart", "1024", "500", "9.0.0","expressInstall.swf",
{"data-file":"data.txt"});
        </script>
data-file肯定是接受数据的,数据源是一个txt文件,我们看一下txt文件的内容大概是这样的:
{
  "title":{
    "text":  "Many data lines",
    "style": "{font-size: 20px; color:#0000ff; font-family: Verdana; text-align: center;}"
  },

  "y_legend":{
    "text": "Open Flash Chart",
    "style": "{color: #736AFF; font-size: 12px;}"
  },

  "elements":[
    {
      "type":      "bar",
      "alpha":     0.5,
      "colour":    "#9933CC",
      "text":      "Page views",
      "font-size": 10,
      "values" :   [9,6,7,9,5,7,6,9,7]
    },
    {
      "type":      "bar",
      "alpha":     0.5,
      "colour":    "#CC9933",
      "text":      "Page views 2",
      "font-size": 10,
      "values" :   [4,9,6,7,9,5,7,6,9]
    }
  ],

  "x_axis":{
    "stroke":1,
    "tick_height":10,
    "colour":"#d000d0",
    "grid_colour":"#00ff00",
    "labels": ["January","February","March","April","May","June","July","August","Spetember"]
   },

  "y_axis":{
    "stroke":      4,
    "tick_length": 3,
    "colour":      "#d000d0",
    "grid_colour": "#00ff00",
    "offset":      0,
    "max":         20
  }

/* &x_axis_steps=2& */

}
    一看这个文件内容是不是很有亲切感,没错,这就是json数据嘛,好了,问题出来了,我们如何把我们的数据组装成这个格式的数据呢?这时是不是想到了我们刚刚从网上下载的2个jar包,没错,着个jar用来生成图表对象,例如PieChart(饼图),LineChart(线图),BarChart(柱状图),这些对象的模型都包含在jar包内了,我们可以直接来生成一个对象,然后给改对象设置属性,是不是就生成一个图了?答案是肯定的!!现在的问题是,虽然我们生成了图的数据,但前台data-file接受的是json数据,我们怎么样把这些对象生成json数据传回前台供解析呢?这时我们就会想到SSH的struts框架了,它不是可以按照规定的要求返回到前台合适的数据类型吗?我们公司的工程在这个环节上废了我九牛二虎之力啊,我在struts.xml中配置了返回json类型,我一开始的代码大概是这样的:
下载json包加入classpath,<action name="testAction" class="com.json.action.TestAction" method="testMethod">   
<interceptor-ref name="json" /><!--处理以JSON文本提交的请求-->   
    <result type="json" /> <!--将action的bean属性以json字符串返回浏览器-->   
</action>   
这样配置了之后,我发现前台始终无法解析我传回的json数据,后来发现与我们项目的系统框架有冲突,那怎么办呢?算了,自己动手丰衣足食,自己写返回类型。
写了个返回类型的类:
OFC2Result.javaimport java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.http.HttpServletResponse;

import jofc2.model.Chart;

import org.apache.struts2.StrutsStatics;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.Result;
import com.opensymphony.xwork2.util.ValueStack;

public class OFC2Result implements Result {
private static final long serialVersionUID = 6881760833309063964L;

@Override
public void execute(ActionInvocation invocation) throws Exception {
ActionContext actionContext = invocation.getInvocationContext();
        HttpServletResponse response = (HttpServletResponse) actionContext
                .get(StrutsStatics.HTTP_RESPONSE);
        
        try {
            ValueStack stack = invocation.getStack();
            Chart chart = (Chart)stack.findValue("ofcChart");
            
            response.setContentType("application/json-rpc;charset=utf-8");
            response.setHeader("Cache-Control", "no-cache");
            response.setHeader("Expires", "0");
            response.setHeader("Pragma", "No-cache");
            
            PrintWriter out = response.getWriter();
            out.print(chart.toString());
        } catch (IOException exception) {
            throw exception;
        }

}

}
 

struts.xml的配置文件中改为:
<package name="ofc2-default" extends="struts-default">
        <result-types>
            <result-type name="ofc2" class="com.****.reportshape.utils.OFC2Result"/>
        </result-types>
    </package>
 
现在我们就可把ofc2作为返回类型啦。
到此,组件集成基本就大功告成了,下一篇中我会把我写的demo的代码贴出来,欢迎拍砖啥的、、、

 

分享到:
评论

相关推荐

    SSH2框架集成

    SSH2框架,全称为Spring、Struts和Hibernate的组合,是Java Web开发中常见的三大开源框架集成。这个框架集合提供了全面的企业级应用解决方案,适用于构建高效、可维护性高的Web应用程序。Spring作为核心容器,负责...

    SSH2框架 集成

    SSH2框架集成主要指的是在Java开发环境中整合Spring、Struts2和Hibernate这三个开源框架,以构建高效、可维护的企业级Web应用。SSH2是SSH(Spring、Struts、Hibernate)的升级版本,其中的2代表这三大框架的较新版本...

    SSH2框架搭建实例源码

    SSH2框架,全称为Spring、Struts2和Hibernate2的集成框架,是Java Web开发中的一个常见组合。这个实例源码使用的是Spring 3.2、Struts2 2.3.4和Hibernate 4.2这三个框架的较新版本,提供了一个基础的用户登录和用户...

    ssh2框架集成包

    SSH2框架集成包是开发Java Web应用程序的一种常见组合,它由Struts 2.3.4、Spring 3.1.2和Hibernate 4.1.6这三大框架组成。这个集成包通常是为了简化开发流程,提高代码复用性和可维护性而设计的。下面将详细介绍这...

    ssh2框架练习项目及代码

    SSH2框架,全称为Spring、Struts2和Hibernate2,是Java Web开发中常见的MVC架构的集成。这个框架组合提供了强大的数据持久化、业务逻辑处理和用户界面控制能力,常用于构建复杂的企业级应用程序。在"ssh2框架练习...

    简单ssh2框架程序

    SSH2框架,全称为Spring、Struts2和Hibernate2的集成框架,是Java Web开发中常用的MVC(Model-View-Controller)架构模式的一种实现。这个"简单ssh2框架程序"是一个基础的Web工程,主要涵盖了用户登录、注册和登出这...

    SSH框架集成(图)详解

    SSH框架集成详解SSH框架集成详解 SSH框架集成详解SSH框架集成详解

    基于spring注解的SSH2框架集成

    在这个基于Spring注解的SSH2框架集成中,我们将深入探讨如何将这三个组件有效地整合,并利用Spring的注解驱动特性提升开发效率。 首先,Struts2是一个强大的MVC(Model-View-Controller)框架,它在Struts1的基础上...

    SSH2框架的搭建步骤-教程文档大全

    一次下载,SSH2框架的搭建步骤 全部文档资料都有。 对于新手来说,独自完成一个完整正确的SSH框架可能是一个相当困难麻烦的事。在此我利用Myeclipse+mysql环境下使用截图外加简略文字引导初学者一步一步的搭建出一个...

    ssh2框架例子

    **SSH2框架集成** SSH2框架的集成主要是将这三个框架的功能无缝连接,使它们协同工作。Spring负责管理所有组件,包括Struts2的Action和Hibernate的SessionFactory。Struts2作为前端控制器接收并转发请求,同时利用...

    一个ssh2框架

    SSH2框架,全称为Spring、Struts2和Hibernate2的集成框架,是Java开发中常用的一个企业级应用框架。这个框架结合了Spring的IoC(Inversion of Control,控制反转)和AOP(Aspect Oriented Programming,面向切面编程...

    SSH1框架集成

    SSH1框架是Web开发中的一种经典组合,由Spring、Struts和Hibernate三个开源框架整合而成。...通过实践SSH1框架集成,初学者不仅能提升Web开发技能,还能深入理解各组件间的协作机制,为后续的进阶学习打下坚实的基础。

    SSH2框架集成例子

    在SSH2框架集成中,Spring作为核心,负责管理应用中的对象和依赖关系。它通过配置文件(如`applicationContext.xml`)定义bean的实例化、装配和生命周期管理,同时提供AOP支持,实现如日志、事务等横切关注点的解耦...

    SSH集成框架(源码)

    SSH集成框架,全称为Spring、Struts和Hibernate的组合,是Java Web开发中常见的三大开源框架集成。这个框架集合了Spring的依赖注入、事务管理,Struts的MVC设计模式,以及Hibernate的对象关系映射(ORM)功能,为...

    SSH2框架搭建详细图解

    SSH2框架,全称为Struts2、Spring和Hibernate2的集成框架,是Java Web开发中的一个常用技术栈,主要用于构建高效、可维护性高的企业级应用程序。本详细图解将带你一步步了解如何搭建SSH2框架,并实现一个简单的注册...

    SSH2框架实例(全注解)

    SSH2框架,全称为Struts2、Spring和Hibernate2的集成框架,是Java Web开发中的一个常用工具包,尤其适合大型企业级应用。这个框架集合了三个强大的组件,分别是Struts2负责MVC(Model-View-Controller)模式的实现,...

    SSH2框架实例

    ssh2,SSH2web开发框架,ssh2框架连接mysql,ssh2源码实例,ssh2框架实例,该SSH2框架中配置都写好了,SSH2框架的版本为struts-2.3.8,spring-framework-3.2.2,hibernate-release-4.2.1.Final。注意连接数据库时要...

    简单的SSH2框架实现代码

    在SSH2框架集成中,Spring作为整体架构的控制层,负责管理对象的生命周期和依赖关系,以及事务管理。Struts2则作为前端控制器,接收并处理HTTP请求,调用Spring管理的业务逻辑组件(通常是Spring的Bean)。Hibernate...

    SSH2框架整合

    SSH2框架整合是Java开发中的一个重要概念,它指的是Spring、Struts2和Hibernate这三大主流开源框架的集成应用。在企业级Web应用开发中,SSH2框架整合能够提供高效、灵活且可维护的解决方案。 首先,Spring框架是SSH...

Global site tag (gtag.js) - Google Analytics