技術(shù)前沿 深入剖析Tomcat和JSP與Flex結(jié)合
本文和大家重點討論一下Flex結(jié)合的概念,主要包括Flex結(jié)合tomcat和Flex結(jié)合JSP兩大部分內(nèi)容,相信通過本文的學(xué)習(xí)你對Flex結(jié)合的概念一定會有深刻的認(rèn)識。
Flex結(jié)合
最近一直在做有關(guān)JSP開發(fā)的網(wǎng)站,重復(fù)的登陸驗證頁面,重復(fù)的語法以及重復(fù)的跳轉(zhuǎn)頁面,熟悉的不能再熟悉的struts構(gòu)建流程。
做項目的期間,還自己學(xué)習(xí)了HIBERNATE,ajax等等,所以在寫JSP代碼的同時,也考慮到了JSP可以不可以和特效Flex結(jié)合起來,于是在工作完成的時候,自己會去看一些Flex的東西,很有好的界面,很炫的組件,真是被Flex所深深吸引。
1.Flex結(jié)合tomcat
Flex只是個運行庫或者說是webapplication,用來處理mxml類型的文件,其運行庫就是Flex.war,所以它可以部署到任何一個兼容的jsp服務(wù)器上:比如Tomcat,weblogic、websphere、Jrun,Jboss等,而Coldfusion目前也是運行庫或者說是webapplication,用來處理cfml類型的文件,其運行庫就是cfusion.war,所謂standalone版本的coldfusion只是把jrun和cfusion.war一起打包安裝而已,所以就沒有Flex和Coldfusion結(jié)合之說了。
所以要想tomcat做Flex的服務(wù)器,很簡單的說安裝完FlexDadaServices,目前名字叫Adobe_LiveCycle_Data_Services,我本人安裝的版本是(Adobe_LiveCycle_Data_Services_ES_2.5.1)
需要的話可以共享給大家,你也可以自己去下載,下載完不用去找序列號,因為我差了半天也沒查到,默認(rèn)可以有60天的試用期。
下一步需要做的就是把Flex項目下的Flex.war和samples.war拷貝到tomcat下的webapp目錄里,考完后,tomcat會自動部署文件,不需操作,這樣輸入項目路徑:http://localhost:8080/samples就可以看到里面的Flex程序了,就是這么簡單。
2.Flex結(jié)合JSP
其實Flex里夾雜了ajax異步調(diào)用的技術(shù),因為本身ACTIONSCRIPT就和JAVASCRIPT有著異曲同工之妙。我做了一個例子是參考手冊上面的,不過自己改了一下,大概的程序就是這樣的,首頁當(dāng)然是Flex服務(wù)器來解析hxml,然后后臺通過jsp文件交互數(shù)據(jù)庫,然后把數(shù)據(jù)動態(tài)的封裝成xml格式,最后在把xml標(biāo)簽與Flex程序綁定在一起,就可以了。這樣當(dāng)運行Flex前端程序的時候,后臺就會把綁定好的數(shù)據(jù)顯示到了Flex的組件里。
我的mxml代碼:
- <?xmlversionxmlversion="1.0"encoding="utf-8"?>
- <mx:Applicationxmlns:mxmx:Applicationxmlns:mx="http://www.adobe.com/2006/mxml"layout="absolute"creationComplete="feedRequest.send()
- "backgroundGradientColors="[#000000,#000000]">
- <mx:HTTPServiceidmx:HTTPServiceid="feedRequest"url="http://localhost:8080/test/index.jsp"useProxy="false">
- <mx:requestxmlnsmx:requestxmlns="">
- <directory>{test.text}</directory>
- </mx:request>
- </mx:HTTPService>
- <mx:Panelidmx:Panelid="blog"width="359"height="520"title="{feedRequest.lastResult.rss.channel.title}"verticalCenter="188.5"horizontalCenter="179">
- <mx:DataGrididmx:DataGridid="dgPosts"dataProvider="{feedRequest.lastResult.rss.channel.item}"width="340"height="167">
- <mx:columns>
- <mx:DataGridColumnheaderTextmx:DataGridColumnheaderText="題目"dataField="title"/>
- <mx:DataGridColumnheaderTextmx:DataGridColumnheaderText="路徑"dataField="url"/>
- </mx:columns>
- </mx:DataGrid>
- <mx:TextAreawidthmx:TextAreawidth="388"height="129"htmlText="{dgPosts.selectedItem.description}"/>
- <mx:LinkButtonlabelmx:LinkButtonlabel="查看詳細(xì)"click="navigateToURL(newURLRequest(dgPosts.selectedItem.url));"/>
- <mx:Labeltextmx:Labeltext="選擇ID號"/>
- <mx:TextInputidmx:TextInputid="test"width="115"height="23"/>
- <mx:Labeltextmx:Labeltext="{test.text}"/>
- <mx:Buttonlabelmx:Buttonlabel="登陸"id="Submit"click="feedRequest.send();"/>
- </mx:Panel>
- <mx:Imagewidthmx:Imagewidth="717"height="151"top="31"horizontalCenter="0">
- <mx:source>file:///C|/DocumentsandSettings/Administrator/桌面/banner.gif</mx:source>
- </mx:Image>
- <mx:MenuBarxmx:MenuBarx="188"y="203"width="539"height="45"></mx:MenuBar>
- </mx:Application>
注釋:
(1).application里creationComplete="feedRequest.send()"這一屬性是每次程序運行時,調(diào)用httpservice里的Send()方法,在這個程序里實際上是請求http://localhost:8080/test/index.jsp,把得到的數(shù)據(jù)以xml形式返回,把內(nèi)容綁定到DataGrid的組件上。
(2).dataProvider="{feedRequest.lastResult.rss.channel.item}"此句的語法,應(yīng)該是,得到最后的返回結(jié)果,按照rss,channel,item此三層標(biāo)簽去綁定所遍歷的數(shù)據(jù)。
- <mx:columns>
- <mx:DataGridColumnheaderTextmx:DataGridColumnheaderText="題目"dataField="title"/>
- <mx:DataGridColumnheaderTextmx:DataGridColumnheaderText="路徑"dataField="url"/>
- </mx:columns>
以上代碼就是創(chuàng)建分別叫題目和路徑的2個列,title和url即為遍歷出來的信息源標(biāo)簽。
(3).click="navigateToURL(newURLRequest(dgPosts.selectedItem.url));"linkbutton的屬性,強調(diào)一點的是dgPosts是datagrid中所產(chǎn)生的選項,而navigateToURL(newURLRequest(url))此句就是另外打開一個url。
【編輯推薦】
- 評點Flex結(jié)合J2EE的開發(fā)與架構(gòu)
- Flex安全沙箱問題解決方法
- 技術(shù)前沿 看Flex客戶端緩存技術(shù)如何使用
- 解析Flex全屏模式設(shè)置方法
- Flex內(nèi)存泄露解決方法和內(nèi)存釋放優(yōu)化原則