伪ssh2框架集成open flash chart2全记录(一)
首先阐明为何是伪ssh2框架,因为这是公司的一个项目,集成了Struts2和spring3,并没有涉及到到hibernate的使用,所以暂且称它为伪SSH2框架,应为在真正的SSH2框架中使用open flash chart2的技术和在此框架是一样的。废话有点多啊、、、
这是一个包含demo的完整包,下载下来备用。下载后解压缩,看到文件夹里有好多东西啊、、、兴奋时刻开始啦、、
其中有一段是这样的<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;
?现在我们就可把ofc2作为返回类型啦。到此,组件集成基本就大功告成了,下一篇中我会把我写的demo的代码贴出来,欢迎拍砖啥的、、、?