您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > j2ee项目整合flex
应一个朋友请求,给他写一个J2EE与FLEX的整合DEMO,前些日子项目紧,没来得及,现在有点时间,呵呵,耽搁了这么久,先对这位朋友说个对不起啦!写了这么多,于是我顺便贴我的空间里吧,校内日志我也摘抄了一份!我用的环境是MyEclipse6.0+JDK5.0+Tomcat5.5+Flex3.0BuilderForEclipsePlugin+LCDSMyEclipse6.0的安装,不说了JDK5.0的安装,不说了Tomcat5.5也不说了LCDS可以到下载地址(官方):=livecycle%5Fdataservices要注册Adobe账号,不过是免费使用的FlexBuilder3下载=EN_US-gntray_prod_flex_home去网上找一个FB3_WWEJ_Plugin().exe,安装完成后,在你的MyEclipse中Help-SoftwareUpdates-ManageConfiguration-AddanExtensionLocation指向你FB3_WWEJ_Plugin().exe的安装路径就可以了!或在你的Eclipse的安装目录下,有个links文件夹,在里面新建一个com.adobe.flexbuilder.feature.core.link文件,里面写着X:/ProgramFiles/Adobe/FlexBuilder3Plug-in,“X”表示你安装FlexBuilder3Plug-in的盘符!1.首先创建一个Web项目,如图所示:2.然后把这个项目部署到Tomcat服务器上的,我用的是Tomcat5.5.。3.接下来,如果你已把LCDS安装好了的话,那么你就到LCDS文件夹下面把lcds下的WEB-INF里的lib,flex两个文件夹考到你的FlexDemo项目里的WEB-INF下。4.接下来就是向现有的项目中添加FLEX特性了。回到你的MyEclipse中在你的项目上右击-FlexProjectNature-addFlexProjectNature,如图所示:点Next注意了!!!!!这里的Rootfolder要指向你Tomcat下的Webapps里的项目下面,RootURL是你用来调试用的,localhost后面的FlexDemo名子要和上面Rootfolder里的FlexDemo要相同,Contextroot这里也是的,outputfolder这里要指向你MyEclipse项目里的WebRoot下面,这样就好了,如图所示:这里点一下ValidateConfiguration进行校验一下,就可以了!!然后点Finish完成!接下来就是配置环境了,对于初学者来说,这很麻烦也很乱,不过不要紧,你一点点理清了,也不是件难事!呵呵,俺就是这样过来的!回到你的MyEclipse中在你的项目上右击-Properties会出现下面图形:点FlexBuildPath选项,在Sourcepath选项卡中,点AddFolder在弹出的对话框中写上flex_src。这表示所有的FLEX文件都放在这里,这个文件夹就是FLEX的源文件夹!如同JAVA里src一样!写完后点OK就可以了,然后在下面的Mainsourcefolder也改成flex_src,不自己写也行,你可点后面的Browse找到原项目里的flex_src也可以,不过你要事先要建好了才行哦!下面的Outputfolder你在前面已经配置好了,所以这里就不用改了,如果事前没有配置好,那在这里也可以配置,点后面的Browse浏览到你项目里的WebRoot文件夹就可以了,意思就是编译后文件都放到这里!到这里,Sourcepath里东东就搞定了!下面我们来看下一个选项卡吧:我们会看到SDK会有小红叉,这不要紧,你先选中它,然后点Remove,将其移除,过会我会在下面的配置里再把它配好!这样FlexBulidPath就配置好了!接下来再选中“FlexCompiler”选项卡,会出现如下图示:只要把选中“UsedefaultSDK(Currently“FLEX3”)”,然后点一下“Apply”应用一下就OK了!不信你可以再回到FlexBuildPath里看看上面的SDK已经加进去了!现在部署一下你的项目吧,如果没有开启,那再开启WEB服务器,开启完成后,你会发现在可以选中,右击,选中“recreateHTMLTemplates”.你再刷新一下项目,你会看到项目里新增了一个“html-templates”文件夹,现时在WebRoot下面也会出现你FlexDemo.mxml编译后生成的FlexDemo.html文件了,哈哈接下来要写代码了先在index.jsp里面随便写点吧bodyThisismyJSPpage.brhrHelloWorld!!hrahref=./FlexDemo.htmlgotoFlexDemo/a/body然后在FlexDemo.mxml也随便写点吧:?xmlversion=1.0encoding=utf-8?mx:Applicationxmlns:mx==absolutemx:Buttonx=178y=150label=Button/mx:Buttonx=277y=150label=Button/mx:Buttonx=221y=180label=Button/mx:TextAreax=182y=98//mx:Application好,我们先来看看能不能实现这个链接!最后确认一下你的WEB服务器有没有开启,如果开启了,那请你找开IE,在地址栏里写上如果你设置的端口号是8080,那要加上了,我用了80端口啦,所以不用写了,呵呵…………修改FlexDemo.mxml代码,进行数据交互:?xmlversion=1.0encoding=utf-8?mx:Applicationxmlns:mx==absolutemx:RemoteObjectid=ROdestination=QueryDatamx:methodname=getDataresult=queryResultHandler_1(event)fault=faultEvent(event)/mx:methodname=getDataByNameresult=queryResultHandler_2(event)fault=faultEvent(event)//mx:RemoteObjectmx:Script![CDATA[importmx.events.*;importmx.rpc.events.ResultEvent;[Bindable]privatevarCData:String;privatefunctionfaultEvent(e:Event):void{ta.text=通讯失败,请稍后重试.;}privatefunctionchange_1(e:Event):void{RO.getData();}privatefunctionchange_2(e:Event):void{RO.getDataByName(taname.text.toString());}publicfunctionqueryResultHandler_1(event:ResultEvent):void{varresult:String=String(event.result);CData=result;}publicfunctionqueryResultHandler_2(event:ResultEvent):void{varresult:String=String(event.result);CData=result;}publicfunctionclearText():void{ta.text=;taname.text=;}]]/mx:Scriptmx:Buttonx=110y=113label=getStringclick=change_1(event);/mx:TextAreaid=tax=110y=61width=209text={CData}/mx:Buttonx=192y=113label=getStringByNameclick=change_2(event)/mx:Buttonx=110y=143label=ClearTextAreawidth=209click=clearText()/mx:TextAreaid=tanamex=192y=172height=28width=127/mx:Labelx=110y=173text=SayHelloTo:height=27width=89//mx:Application添加JAVA代码:包结构为com.Demo.java,com.DemoDAO.javaCom.Demo.java代码为:packagecom;publicclassDemo{publicStringgetData(){System.out.println(infunctionone);DemoDAODAO=newDemoDAO();returnDAO.getData();}publicStringgetDataByName(Stringname){System.out.println(infunctiontwo);DemoDAODAO=newDemoDAO(name);returnDAO.getDataByName();}}Com.DemoDAO.java代码为:packagecom;publicclassDemoDAO{privateStringname;publicDemoDAO(){super();}publicDemoDAO(Stringname){super();this.name=name;}publicStringgetData(){returnHelloWorld!!!^_^;}publicStringgetDataByName(){returnHello+this.name+!!!^_^;}}上面两段代码一个实现了直接从后台取数据然后显示到前台页面,一个是从前台获取原始数据然后经后台处理后,再传到前台页面显示!修改项目中的WebRoot-WEB-INF-Flex-Remoting-config.xml文件为:?xmlversion=1.0encoding=UTF-8?serviceid=remoting-serviceclass=flex.messaging.services.RemotingServiceadaptersadapter-definitionid=java-objectclass=flex.messaging.services.remoting.adapters.JavaAdapterdefault=true//adaptersdefault-channelschannelref=my-amf//default-channelsdestinationid=QueryDatapropertiessourcecom.Demo/source/properties/destination/service将我这些代码都考进去,然后编译一下,不行就再部署一下也行,然后再重新打开IE测试一下吧!
本文标题:j2ee项目整合flex
链接地址:https://www.777doc.com/doc-754133 .html