发表时间:2011-03-16
最后修改:2011-03-16
贴几个重要的文件
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