【IT168技术分析】最近一直在做有关JSP开发的网站,重复的登陆验证页面,重复的语法以及重复的跳转页面,熟悉的不能再熟悉的struts构建流程。
做项目的期间,还自己学习了HIBERNATE,ajax,等等
所以在写JSP代码的同时,也考虑到了JSP可以不可以和特效结合起来,于是在工作完成的时候,自己会去看一些flex的东西,很有好的界面,很炫的组件,真是被flex所深深吸引。
1. Flex结合tomcat
Flex只是个运行库或者说是web application,用来处理mxml类型的文件,其运行库就是Flex.war,所以它可以部署到任何一个兼容的jsp服务器上:比如 Tomcat, weblogic、websphere、Jrun,Jboss等,而Coldfusion目前也是运行库或者说是web application,用来处理cfml类型的文件,其运行库就是cfusion.war,所谓standalone版本的coldfusion只是把 jrun和cfusion.war一起打包安装而已,所以就没有Flex和Coldfusion结合之说了。
所以要想tomcat做flex的服务器,很简单的说安装完Flex Dada Services,目前名字叫Adobe_LiveCycle_Data_Services,我本人安装的版本是 (Adobe_LiveCycle_Data_Services_ES_2.5.1)
需要的话可以共享给大家,你也可以自己去下载,下载完不用去找序列号,因为我差了半天也没查到,默认可以有60天的试用期。
下一步需要做的就是把flex项目下的flex.war和samples.war拷贝到tomcat下的webapp目录里,考完后, tomcat会自动部署文件,不需操作,这样输入项目路径 : http://localhost:8080/samples 就可以看到里面的flex程序了,就是这么简单。
2.FLEX结合JSP
其实flex里夹杂了ajax异步调用的技术,因为本身ACTIONSCRIPT就和JAVASCRIPT有着异曲同工之妙。我做了一个例子是参 考手册上面的,不过自己改了一下,大概的程序就是这样的,首页当然是flex服务器来解析hxml,然后后台通过jsp文件交互数据库,然后把数据动态的 封装成xml格式,最后在把xml标签与flex程序绑定在一起,就可以了。 这样当运行flex前端程序的时候,后台就会把绑定好的数据显示到了flex的组件里。
我的mxml代码:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="feedRequest.send()" backgroundGradientColors="[#000000, #000000]">
<mx:HTTPService id="feedRequest" url="http://localhost:8080/test/index.jsp" useProxy="false">
<mx:request xmlns="">
<directory>{test.text}</directory>
</mx:request>
</mx:HTTPService>
<mx:Panel id="blog" width="359" height="520" title="{feedRequest.lastResult.rss.channel.title}" verticalCenter="188.5" horizontalCenter="179">
<mx:DataGrid id="dgPosts" dataProvider="{feedRequest.lastResult.rss.channel.item}" width="340" height="167">
<mx:columns>
<mx:DataGridColumn headerText="题目" dataField="title"/>
<mx:DataGridColumn headerText="路径" dataField="url"/>
</mx:columns>
</mx:DataGrid>
<mx:TextArea width="388" height="129" htmlText="{dgPosts.selectedItem.description}"/>
<mx:LinkButton label="查看详细" click="navigateToURL(new URLRequest(dgPosts.selectedItem.url));"/>
<mx:Label text="选择ID号" />
<mx:TextInput id="test" width="115" height="23"/>
<mx:Label text="{test.text}" />
<mx:Button label="登陆" id="Submit" click="feedRequest.send();"/>
</mx:Panel>
<mx:Image width="717" height="151" top="31" horizontalCenter="0">
<mx:source>file:///C|/Documents and Settings/Administrator/桌面/banner.gif</mx:source>
</mx:Image>
<mx:MenuBar x="188" y="203" width="539" height="45"></mx:MenuBar>
</mx:Application>
注释:
(1).application里creationComplete="feedRequest.send()" 这一属性是每次程序运行时,调用httpservice 里的Send()方法,在这个程序里实际上是请求http://localhost:8080/test/index.jsp ,把得到的数据以xml形式返回,把内容绑定到DataGrid 的组件上。
(2).dataProvider="{feedRequest.lastResult.rss.channel.item}" 此句的语法,应该是,得到最后的返回结果,按照rss,channel,item此三层标签去绑定所遍历的数据。
<mx:columns>
<mx:DataGridColumn headerText="题目" dataField="title"/>
<mx:DataGridColumn headerText="路径" dataField="url"/>
</mx:columns>
以上代码就是创建分别叫题目和路径的2个列,title和url即为遍历出来的信息源标签。
(3).click="navigateToURL(new URLRequest(dgPosts.selectedItem.url));" linkbutton的属性,强调一点的是dgPosts是datagrid中所产生的选项,而navigateToURL(new URLRequest(url))此句就是另外打开一个url。