首先阐明为何是伪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框架,全称为Spring、Struts和Hibernate的组合,是Java Web开发中常见的三大开源框架集成。这个框架集合提供了全面的企业级应用解决方案,适用于构建高效、可维护性高的Web应用程序。Spring作为核心容器,负责...
SSH2框架集成主要指的是在Java开发环境中整合Spring、Struts2和Hibernate这三个开源框架,以构建高效、可维护的企业级Web应用。SSH2是SSH(Spring、Struts、Hibernate)的升级版本,其中的2代表这三大框架的较新版本...
SSH2框架,全称为Spring、Struts2和Hibernate2的集成框架,是Java Web开发中的一个常见组合。这个实例源码使用的是Spring 3.2、Struts2 2.3.4和Hibernate 4.2这三个框架的较新版本,提供了一个基础的用户登录和用户...
SSH2框架集成包是开发Java Web应用程序的一种常见组合,它由Struts 2.3.4、Spring 3.1.2和Hibernate 4.1.6这三大框架组成。这个集成包通常是为了简化开发流程,提高代码复用性和可维护性而设计的。下面将详细介绍这...
SSH2框架,全称为Spring、Struts2和Hibernate2,是Java Web开发中常见的MVC架构的集成。这个框架组合提供了强大的数据持久化、业务逻辑处理和用户界面控制能力,常用于构建复杂的企业级应用程序。在"ssh2框架练习...
SSH2框架,全称为Spring、Struts2和Hibernate2的集成框架,是Java Web开发中常用的MVC(Model-View-Controller)架构模式的一种实现。这个"简单ssh2框架程序"是一个基础的Web工程,主要涵盖了用户登录、注册和登出这...
SSH框架集成详解SSH框架集成详解 SSH框架集成详解SSH框架集成详解
在这个基于Spring注解的SSH2框架集成中,我们将深入探讨如何将这三个组件有效地整合,并利用Spring的注解驱动特性提升开发效率。 首先,Struts2是一个强大的MVC(Model-View-Controller)框架,它在Struts1的基础上...
一次下载,SSH2框架的搭建步骤 全部文档资料都有。 对于新手来说,独自完成一个完整正确的SSH框架可能是一个相当困难麻烦的事。在此我利用Myeclipse+mysql环境下使用截图外加简略文字引导初学者一步一步的搭建出一个...
**SSH2框架集成** SSH2框架的集成主要是将这三个框架的功能无缝连接,使它们协同工作。Spring负责管理所有组件,包括Struts2的Action和Hibernate的SessionFactory。Struts2作为前端控制器接收并转发请求,同时利用...
SSH2框架,全称为Spring、Struts2和Hibernate2的集成框架,是Java开发中常用的一个企业级应用框架。这个框架结合了Spring的IoC(Inversion of Control,控制反转)和AOP(Aspect Oriented Programming,面向切面编程...
SSH1框架是Web开发中的一种经典组合,由Spring、Struts和Hibernate三个开源框架整合而成。...通过实践SSH1框架集成,初学者不仅能提升Web开发技能,还能深入理解各组件间的协作机制,为后续的进阶学习打下坚实的基础。
在SSH2框架集成中,Spring作为核心,负责管理应用中的对象和依赖关系。它通过配置文件(如`applicationContext.xml`)定义bean的实例化、装配和生命周期管理,同时提供AOP支持,实现如日志、事务等横切关注点的解耦...
SSH集成框架,全称为Spring、Struts和Hibernate的组合,是Java Web开发中常见的三大开源框架集成。这个框架集合了Spring的依赖注入、事务管理,Struts的MVC设计模式,以及Hibernate的对象关系映射(ORM)功能,为...
SSH2框架,全称为Struts2、Spring和Hibernate2的集成框架,是Java Web开发中的一个常用技术栈,主要用于构建高效、可维护性高的企业级应用程序。本详细图解将带你一步步了解如何搭建SSH2框架,并实现一个简单的注册...
SSH2框架,全称为Struts2、Spring和Hibernate2的集成框架,是Java Web开发中的一个常用工具包,尤其适合大型企业级应用。这个框架集合了三个强大的组件,分别是Struts2负责MVC(Model-View-Controller)模式的实现,...
ssh2,SSH2web开发框架,ssh2框架连接mysql,ssh2源码实例,ssh2框架实例,该SSH2框架中配置都写好了,SSH2框架的版本为struts-2.3.8,spring-framework-3.2.2,hibernate-release-4.2.1.Final。注意连接数据库时要...
在SSH2框架集成中,Spring作为整体架构的控制层,负责管理对象的生命周期和依赖关系,以及事务管理。Struts2则作为前端控制器,接收并处理HTTP请求,调用Spring管理的业务逻辑组件(通常是Spring的Bean)。Hibernate...
SSH2框架整合是Java开发中的一个重要概念,它指的是Spring、Struts2和Hibernate这三大主流开源框架的集成应用。在企业级Web应用开发中,SSH2框架整合能够提供高效、灵活且可维护的解决方案。 首先,Spring框架是SSH...