flex3+struts2+spring2+hibernate3+mysql(在web项目里面建flex,而不是flex工程)
贴几个重要的文件
1。在原有的web项目中,添加flex步骤:
首先,安装flex插件。详细见http://apps.hi.baidu.com/share/detail/20337120,只到安装即可。
后面建工程就不要了。
2。新建web工程,把struts2+spring2+hibernate3的所有包,和所有配置文件写好。(这个做web开发
的都比较熟悉,在我的包里都有,就不说了)
--------接下来就是添加flex了。
右键点击工程名:如右图
把flex工程加进去,在遇到新增完成的最后一步要记得取消“web.xml”那个选项。不然就覆盖了原来的web.xml了。
3。把blazeds(是在tomcat/webapp/你的项目下,你安装flex插件后,建flex工程时,要用到blazeds.war这个文件,当你启动tomcat的时候会自动生成blazeds文件夹)里面的几个xml文件放到工程里面。如下图

4。修改web-xml文件,加入如下:
?<!-- Http Flex Session attribute and binding listener support -->
?<listener>
??<listener-class>flex.messaging.HttpFlexSession</listener-class>
?</listener>
?<!-- MessageBroker Servlet -->
?<servlet>
??????? <servlet-name>MessageBrokerServlet</servlet-name>
?????????? <servlet-class>
??????????????? flex.messaging.MessageBrokerServlet
??????? </servlet-class>
??????? <init-param>
??????????????? <param-name>
??????????????????????? services.configuration.file
??????????????? </param-name>
??????????????? <param-value>
??????????????????????? /WEB-INF/flex/services-config.xml
??????????????? </param-value>
??????? </init-param>
??????? <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
??????? <servlet-name>MessageBrokerServlet</servlet-name>
??????? <url-pattern>/messagebroker/*</url-pattern>
</servlet-mapping>
5。修改remoting-config.xml(配置flex访问java类的标记)和services-config.xml(配置swf访问路径)
6。建立class文件,注意要有一个flex的映射文件以as结尾。
7。修改mxml文件。我的文件如下:
<?xml version="1.0" encoding="utf-8"?>?
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"??
?????????????? xmlns:locdg="com.flex.*"?
?????????????? creationComplete="initApp()"
?????????????? minWidth="955" minHeight="600">?
<mx:RemoteObject id="goodsdata" destination="goodsDao" result="onResult(event)" fault="onFault(event)" ></mx:RemoteObject>?
<mx:RemoteObject id="addgoodsdata" destination="goodsDao" result="addResult(event)" fault="addFault(event)" />?
<mx:RemoteObject id="deletegoodsdata" destination="goodsDao" result="deleteResult(event)" fault="deleteFault(event)" />
<mx:RemoteObject id="updategoodsdata" destination="goodsDao" result="updateResult(event)" fault="updateFault(event)" />?
<mx:Script>
?<![CDATA[
???import com.shop.flex.GoodsFlex;
???import com.shop.flex.DoubleClickDataGrid;
??????????? import mx.collections.ArrayCollection;?
??????????? import mx.controls.Alert;?
??????????? import mx.managers.CursorManager;?
??????????? import mx.rpc.events.FaultEvent;?
??????????? import mx.rpc.events.ResultEvent;
???????????
??????????? public var goodsFlex:GoodsFlex = new GoodsFlex();?
??????????? public var result:Object = new Object();?
??????????? [Bindable]?
??????????? public var goods:ArrayCollection = new ArrayCollection();
??????????? public function initApp():void{?
?????????? //?? goodsdata.getGoodsList();?
??????????? }
??????????? public function click_handler(event:Event):void{?
??????????????? CursorManager.setBusyCursor();?
??????????????? info.text = "正在查 询...";?
??????????????? goodsdata.getGoodsList();???
??????????? }?
?
??????????? public function onResult(event:ResultEvent):void{?
??????????????? goods = event.result as ArrayCollection;?
??????????????? CursorManager.removeBusyCursor();?
??????????????? if(goods.length==0){?
??????????????????? info.text="取数据成功,为空";?
??????????????????? //Alert.show("取数据成功,为空");
??????????????? }else{?
??????????????????? //info.text = " 取数据成功";
???????????????????? info.text = "取数据成功";
??????????????? }?
???????????? }?
??????????? public function onFault(event:FaultEvent):void{?
??????????????? CursorManager.removeBusyCursor();?
??????????????? info.text="取数据失败";
???????????????? //Alert.show("取数据失败");
??????????? }
???????????
??????????? public function addgoods_handler(event:Event):void{?
??????????????? if(goodsName.text != ""){?
??????????????????? CursorManager.setBusyCursor();?
??????????????????? goodsFlex.goodsName = goodsName.text;?
??????????????????? addgoodsdata.addGoods(goodsFlex);?
??????????????? }else{
??????????????? ?addinfo.text = "没有填写数据";??
??????????????? }?
??????????? }
??????????? public function addResult(event:ResultEvent):void{?
??????????????? CursorManager.removeBusyCursor();?
??????????????? goodsdata.getGoodsList();?
??????????????? goodsName.text = "";?
??????????????? //Alert.show("添加成功");
??????????????? addinfo.text = "添加成功";
??????????????? //????????????? info.text = "取数据成功";?
??????????? }?
??????????? public function addFault(event:FaultEvent):void{?
??????????????? CursorManager.removeBusyCursor();?
??????????????? addinfo.text = "新增失败";?
??????????? }
???public function deleteGoods(event:Event):void{
????CursorManager.removeBusyCursor();
????goodsFlex.goodsId = goods_data.selectedItem.goodsId;?
??????????????? deletegoodsdata.deleteGoods(goodsFlex);?
???}
???
???public function deleteResult(event:ResultEvent):void{?
??????????????? CursorManager.removeBusyCursor();?
??????????????? goodsdata.getGoodsList();???
??????????????? //info.text = "刪除数据成 功";?
??????????? }?
??????????? public function deleteFault(event:FaultEvent):void{?
??????????????? CursorManager.removeBusyCursor();?
??????????????? //info.text="刪除数据失败";?
??????????? }
???????????
???????????? public function updateGoods(event:Event):void{?
??????????????? if(goods_data.selectedItem.goodsName != ""){?
??????????????????? CursorManager.setBusyCursor();?
??????????????????? info.text = "正在 更新...";?
??????????????????? goodsFlex.goodsId = goods_data.selectedItem.goodsId;?
??????????????????? goodsFlex.goodsName = goods_data.selectedItem.goodsName;?
??????????????????? updategoodsdata.updataGoods(goodsFlex);?
??????????????? }?
??????????? }
???????????
???????????? public function updateResult(event:ResultEvent):void{?
??????????????? CursorManager.removeBusyCursor();?
??????????????? goodsdata.getGoodsList();??
??????????????? info.text = "修改数据成功";?
??????????? }?
??????????? public function updateFault(event:FaultEvent):void{?
??????????????? CursorManager.removeBusyCursor();?
??????????????? info.text="修改数据失败";?
??????????? }
?
?]]>
</mx:Script>
?<mx:DataGrid dataProvider="{goods}" width="400" id="goods_data"
?fontSize="12" borderStyle="inset" fontWeight="bold" textAlign="center" alternatingItemColors="[#F1B6B6, #F2EB37]" height="210" editable="true">
? ?<mx:columns>?
? ?? <mx:DataGridColumn headerText="ID号" dataField="goodsId" editable="false"/>?
???????????? <mx:DataGridColumn headerText="账号" dataField="goodsName" editable="true"/>
????????????
???????????? <mx:DataGridColumn headerText="修改" width="50" editable="false">
???????????????? <mx:itemRenderer>
???????????????? ?<mx:Component>
???????????????? ??<mx:LinkButton toolTip="修改" click="outerDocument.updateGoods(event)" icon="@Embed('icon_06.gif')">????
???????????????? ??</mx:LinkButton>
???????????????? ?</mx:Component>
???????????????? </mx:itemRenderer>
???????????? ?
???????????? </mx:DataGridColumn>
????????????
???????????? <mx:DataGridColumn headerText="删除" width="50" editable="false">
???????????????? <mx:itemRenderer>
???????????????? ?<mx:Component>
???????????????? ??<mx:LinkButton toolTip="删除" click="outerDocument.deleteGoods(event)" icon="@Embed('icon_03.gif')">????
???????????????? ??</mx:LinkButton>
???????????????? ?</mx:Component>
???????????????? </mx:itemRenderer>
???????????? ?
???????????? </mx:DataGridColumn>
?????? </mx:columns>
??? </mx:DataGrid>
??? <mx:Button x="491" y="189" label="取数据" click="click_handler(event)" />?
??? <mx:Text x="606" y="189" id="info" text="点击按钮取数据"/>?
??? <mx:Form x="163" y="72" borderStyle="solid" >?
??????? <mx:FormItem label="用户名" borderStyle="solid">?
??????????? <mx:TextInput id="goodsName" />?
??????? </mx:FormItem>?
??? </mx:Form>?
??? <mx:Button x="444" y="100" label="添 加" click="addgoods_handler(event)"/>
??? <mx:Text x="544" y="100" width="100" height="40" id="addinfo" text="请添加"/>
</mx:Application>?
实现了增删改查的所有功能。如下图

我把工程放在文件下载里,lib比较大分4个rar放的,不明白联系QQ:654865674
1 楼 java_xiaoyi 2011-03-18 排版不咋的。。。。 2 楼 hellostory 2011-03-18 这排版让人没有继续看下去的欲望... 3 楼 s929498110 2011-03-18 flex感觉不好用