flex+java

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代码,我的代码是:

Java代码
  1. <?xml version= "1.0"  encoding= "utf-8" ?>  
  2. <mx:Application   
  3.      xmlns:mx="http://www.adobe.com/2006/mxml"   
  4.      layout="absolute"    
  5.      creationComplete="initApp()" >  
  6.     
  7. <mx:Script>  
  8.    <![CDATA[  
  9.            
  10.          import  flash.events.Event;  
  11.          import  mx.managers.CursorManager;   
  12.          import  mx.rpc.events.ResultEvent;  
  13.          import  mx.rpc.events.FaultEvent;  
  14.            
  15.   
  16.          internal function initApp():void {  
  17.               service.getDatas();  
  18.          }  
  19.   
  20.          internal function resultHandler(evt:ResultEvent):void {  
  21.                CursorManager.removeBusyCursor();  
  22.                myList.labelField = "username" ;  
  23.                myList.dataProvider = evt.result;  
  24.          }  
  25.   
  26.          internal function faultHandler(evt:FaultEvent):void {  
  27.                 CursorManager.removeBusyCursor();  
  28.                 trace("fault:" +evt.fault);  
  29.          }  
  30.   
  31.          internal function selectHandler(evt:Event):void {  
  32.               var user:Object = myList.selectedItem;  
  33.               userPanel.title = "详细信息" +user.username;  
  34.               user_txt.text = user.username;  
  35.               email_txt.text = user.email;  
  36.               url_txt.text = user.url;  
  37.           }  
  38.       ]]>  
  39. </mx:Script>  
  40.     
  41.    <mx:RemoteObject id="service"    
  42.                                  fault="faultHandler(event)"   
  43.                                  showBusyCursor="true"    
  44.                                  destination="userService" >  
  45.    <mx:method name="getDatas"  result= "resultHandler(event)" />  
  46.   </mx:RemoteObject>  
  47.   
  48.   <mx:Panel x="23"  y= "32"  width= "130"  height= "268"     
  49.                     layout="absolute"  title= "名册" >  
  50.        <mx:List id="myList"  x= "0"  y= "10"    
  51.                      width="100%"  height= "100%"    
  52.                      change="selectHandler(event)" >      
  53.        </mx:List>  
  54.   
  55.   </mx:Panel>    
  56.     
  57.   <mx:Panel id="userPanel"  x= "174"  y= "32"  width= "238"     
  58.                      height="199"  layout= "absolute"    
  59.                      horizontalAlign="center"  verticalAlign= "middle" >  
  60.    <mx:Label id="user_txt"  x= "10"  y= "14"  width= "83"     
  61.                      fontWeight="bold" />  
  62.    <mx:Label id="email_txt"  x= "13"  y= "62"  width= "191" />  
  63.    <mx:Label id="url_txt"  x= "13"  y= "103"  width= "191" />  
  64.   </mx:Panel>  
  65.   
  66. </mx:Application>  
<?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调用的方法函数名相同。上代码:

Java代码
  1. package  com.zhan.lcds;  
  2. import  java.util.ArrayList;  
  3. import  java.util.HashMap;  
  4. import  java.util.Map;  
  5. import  java.util.Collection;  
  6.   
  7. public   class  DataService {  
  8.   
  9.   public  Collection getDatas(){  
  10.   
  11.        System.out.println("come into getDatas" );  
  12.   
  13.        ArrayList<Map> list = new  ArrayList<Map>();  
  14.        Map<String,Object> unit;  
  15.        for ( int  i= 0 ;i< 2 ;i++){  
  16.   
  17.           unit = new  HashMap<String,Object>();  
  18.           unit.put("username" , getFirst(i));  
  19.           unit.put("url" , getSecond(i));  
  20.           unit.put("email" , getThird(i));  
  21.           list.add(unit);  
  22.   
  23.        }  
  24.   
  25.        System.out.println("get out of getDatas" );  
  26.    
  27.        return  list;  
  28.   }  
  29.   
  30.   private  String getFirst( int  i){  
  31.   
  32.      if (i== 1 ){  
  33.        return   "First 1 Haha" ;  
  34.            }  
  35.            else   if (i== 2 ){  
  36.               return   "First 2 HaHa" ;  
  37.           }else {  
  38.               return   "first Error" ;  
  39.           }  
  40.      }  
  41.   
  42.      private  String getSecond( int  i){  
  43.   
  44.           if (i== 1 ){  
  45.               return   "Second 1 Haha" ;  
  46.           }else   if (i== 2 ){  
  47.               return   "Second 2 HaHa" ;  
  48.           }else {  
  49.               return   "Second Error" ;  
  50.           }  
  51.      }  
  52.   
  53.      private  String getThird( int  i){  
  54.    
  55.           if (i== 1 ){  
  56.               return   "Third 1 Haha" ;  
  57.           }else   if (i== 2 ){  
  58.               return   "Third 2 HaHa" ;  
  59.           }else {  
  60.              return   "Third Error" ;  
  61.           }  
  62.       }  
  63. }  
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.调用的方法与服务器提拱的方法也要相同
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值