|
1.我的配置环境为:
flexBuilder3,LCDS251,MyEclipse 5.5.1
GA+
2.安装lcds2.5.1,打开目录,里面有一个flex.war
3.关闭tomcat(如果打开在的话)
4.将flex.war拷入tomcat的webapps目录
5.重启tomcat,可以看到webapps里多了一个目录flex,这便是我们要的东西
6.可以将flex.war删除
7.将flex文件夹拷到其他地方,反正不能在webapps里面。(我也不知道为什么)
8.可以开始了,MyEclipse里新建web
Project(假设名为DemoWeb)
9.打开刚移出去的flex目录,将其中WEB-INF全部复制到工程DemoWeb的WebRoot/WEB-INFO里,点全部,
即覆盖原有文件
9.5. flex文件夹中有一个jars目录,里面是一些java包,将里面所有jar拷到DemoWeb的WebRoot/WEB-INFO的lib目录中,
//ok,准备工作都做好了,开始可以编写代码测试下
10.flexBuilder中新建flex工程,放心,我们只用来编写mxml文件
11.编写mxml代码,我的代码是:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application
xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute"
creationComplete="initApp()">
<mx:Script>
<![CDATA[
import flash.events.Event;
import mx.managers.CursorManager;
import mx.rpc.events.ResultEvent;
import mx.rpc.events.FaultEvent;
internal function initApp():void{
service.getDatas();
}
internal function resultHandler(evt:ResultEvent):void{
CursorManager.removeBusyCursor();
myList.labelField = "username";
myList.dataProvider = evt.result;
}
internal function faultHandler(evt:FaultEvent):void{
CursorManager.removeBusyCursor();
trace("fault:"+evt.fault);
}
internal function selectHandler(evt:Event):void{
var user:Object = myList.selectedItem;
userPanel.title = "详细信息"+user.username;
user_txt.text = user.username;
email_txt.text = user.email;
url_txt.text = user.url;
}
]]>
</mx:Script>
<mx:RemoteObject id="service"
fault="faultHandler(event)"
showBusyCursor="true"
destination="userService">
<mx:method name="getDatas" result="resultHandler(event)"/>
</mx:RemoteObject>
<mx:Panel x="23" y="32" width="130" height="268"
layout="absolute" title="名册">
<mx:List id="myList" x="0" y="10"
width="100%" height="100%"
change="selectHandler(event)">
</mx:List>
</mx:Panel>
<mx:Panel id="userPanel" x="174" y="32" width="238"
height="199" layout="absolute"
horizontalAlign="center" verticalAlign="middle">
<mx:Label id="user_txt" x="10" y="14" width="83"
fontWeight="bold"/>
<mx:Label id="email_txt" x="13" y="62" width="191"/>
<mx:Label id="url_txt" x="13" y="103" width="191"/>
</mx:Panel>
</mx:Application>
利用RemoteObject从服务器得到数据,并在Panel中显示出来。
12.在服务器端编写相应的代码,定义一个类DataService为前台提拱服务。类中定义方法getData(),这个方法名与RemoteObject调用的方法函数名相同。上代码:
package com.zhan.lcds;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import java.util.Collection;
public class DataService {
public Collection getDatas(){
System.out.println("come into getDatas");
ArrayList<Map> list = new ArrayList<Map>();
Map<String,Object> unit;
for(int i=0;i<2;i++){
unit = new HashMap<String,Object>();
unit.put("username", getFirst(i));
unit.put("url", getSecond(i));
unit.put("email", getThird(i));
list.add(unit);
}
System.out.println("get out of getDatas");
return list;
}
private String getFirst(int i){
if(i==1){
return "First 1 Haha";
}
else if(i==2){
return "First 2 HaHa";
}else{
return "first Error";
}
}
private String getSecond(int i){
if(i==1){
return "Second 1 Haha";
}else if(i==2){
return "Second 2 HaHa";
}else{
return "Second Error";
}
}
private String getThird(int i){
if(i==1){
return "Third 1 Haha";
}else if(i==2){
return "Third 2 HaHa";
}else{
return "Third Error";
}
}
}
13.配置关键的remoting-config.xml文件,它在将复制在WEB-INF的flex目录内
14.在remoting-config.xml中</service>标签之前加入destination信息.
<destination
id="userService">
<properties>
<source>com.zhan.lcds.DataService</source>
</properties>
</destination>
15.可以将DemoWeb发布了,发布DemoWeb,最后将已经在FB中编写的mxml拷到发布路径的相应地方即可
16.测试,打开tomcat,输入mxml的路径,tomcat会将它编译
17.搞定
注意的地方:
1.remoting-config.xml中设定的destination
id一定要与flex中请求的id相同
2.调用的方法与服务器提拱的方法也要相同
http://imgcache.qq.com/ac/qzone_v4/b.gif |
|
|