日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Flex與Java中的Object交互

Flex與Java中的Object進行交互,需要準(zhǔn)備三個內(nèi)容,一個是Flex主文件,也就是我們的mxml文件,兩個Java類,一個remoting-config.xml。為了減少程序的復(fù)雜性,這里只證明Flex可以調(diào)用 Java中Object進行交互,不進行與數(shù)據(jù)庫的交互。

新建一個Java實體類:SpeakUser.java, 如下:

 
 
 
  1. package com.cx.model; 
  2.  
  3. import java.io.Serializable; 
  4.  
  5. public class SpeakUser implements Serializable{ 
  6.          
  7.     private static final long serialVersionUID = -4154296753553491429L; 
  8.  
  9.     private String userName; 
  10.      
  11.     private String userPwd; 
  12.      
  13.     private String userTel; 
  14.      
  15.     private String userMail; 
  16.  
  17.     public String getUserName() { 
  18.         return userName; 
  19.     } 
  20.  
  21.     public void setUserName(String userName) { 
  22.         this.userName = userName; 
  23.     } 
  24.  
  25.     public String getUserPwd() { 
  26.         return userPwd; 
  27.     } 
  28.  
  29.     public void setUserPwd(String userPwd) { 
  30.         this.userPwd = userPwd; 
  31.     } 
  32.  
  33.     public String getUserTel() { 
  34.         return userTel; 
  35.     } 
  36.  
  37.     public void setUserTel(String userTel) { 
  38.         this.userTel = userTel; 
  39.     } 
  40.  
  41.     public String getUserMail() { 
  42.         return userMail; 
  43.     } 
  44.  
  45.     public void setUserMail(String userMail) { 
  46.         this.userMail = userMail; 
  47.     } 
  48.  

有的作者說這個實體類需要當(dāng)做Java代碼中方法的返回值傳遞給Flex中的AS代碼,所以需要繼承Serializable接口,否則將導(dǎo)致異常的發(fā)生。但是經(jīng)過筆者測試,這個Serializable是可選的,即使不繼承,也不會出現(xiàn)什么問題,可能是由于flex的版本所決定的吧。

再創(chuàng)建一Java對象:IntroduceOneself.java,供Flex調(diào)用, 類中 以SpeakUser作為參數(shù)。代碼如下:

 
 
 
  1. package com.cx.action; 
  2.  
  3. import com.cx.model.*; 
  4.  
  5. public class IntroduceOneself { 
  6.  
  7.     public String speak(SpeakUser user){ 
  8.         System.out.println("Hello, My Name is: " + user.getUserName()); 
  9.         System.out.println("My telephone is: " + user.getUserTel()); 
  10.         System.out.println("My Email is: " + user.getUserMail());        
  11.         return "名字叫:" + user.getUserName() + ", 電話是: "  
  12.                 + user.getUserTel() + ", 郵箱是: "+user.getUserMail()  
  13.                 + "來訪問您,請問您是否要接見?"; 
  14.     } 

然后創(chuàng)建一個ActionScript類:SpeakUser.as, 用于接受實體類SpeakUser.java的返回值,這里的[Bindable][RemoteClass]是和java代碼中的 SpeakUser.java類關(guān)聯(lián)起來。這樣利用類型轉(zhuǎn)換將java對象轉(zhuǎn)換成AS對象。代碼如下:

 
 
 
  1. package com.flex.model 
  2.      
  3.     [Bindable] 
  4.     [RemoteClass(alias="com.cx.model.SpeakUser")] 
  5.     public class SpeakUser 
  6.     { 
  7.         public var userName:String=""; 
  8.         public var userPwd:String =""; 
  9.         public var userTel:String =""; 
  10.         public var userMail:String =""; 
  11.                  
  12.         public function SpeakUser() 
  13.         { 
  14.              
  15.         } 
  16.     } 

修改Flex主文件:BlazObject.mxml,在其中調(diào)用java類,代碼如下:

 
 
 
  1.  
  2.  
  3.      
  4.      
  5.         
  6.             import com.flex.model.SpeakUser; 
  7.              
  8.             import mx.controls.Alert; 
  9.             import mx.rpc.events.ResultEvent; 
  10.              
  11.             public function remotingHelloJavaFlex():void 
  12.             { 
  13.                  
  14.                 var user:SpeakUser = new SpeakUser(); 
  15.              
  16.                 user.userName = nameInputTxt.text; 
  17.                 user.userMail = txtUserMail.text; 
  18.                 user.userPwd = txtPwd.text; 
  19.                 user.userTel = txtTel.text; 
  20.                  
  21.                                  
  22.                 someOneCome.speak(user); 
  23.                 someOneCome.addEventListener(ResultEvent.RESULT,getRoHelloRes); 
  24.             } 
  25.              
  26.             private function getRoHelloRes(e:ResultEvent):void{ 
  27.                 Alert.show(e.result.toString()); 
  28.             } 
  29.              
  30.             private function failed():void{ 
  31.                 Alert.show("cuowu"); 
  32.             } 
  33.         ]]> 
  34.      
  35.      
  36.     
  37.                fontSize="12" width="209"/> 
  38.      
  39.      
  40.      
  41.      
  42.      
  43.      
  44.      
  45.      
  46.      
  47.      
  48.      
  49.  

在這里,F(xiàn)lex是通過AMF協(xié)議與Java對象進行交互的,其中endpoint定義了影射文件的消息協(xié)議,這個文件來自/WEB-INF/flex/services-config.xml中,影射對象的位置是通過remoting- service.xml影射的代碼如下:

 
 
 
  1.  
  2.              
  3.              
  4.                 false 
  5.              
  6.          

remoting-service.xml

 
 
 
  1.  
  2.     class="flex.messaging.services.RemotingService"> 
  3.  
  4.      
  5.          
  6.      
  7.  
  8.      
  9.          
  10.      
  11.      
  12.      
  13.          
  14.              
  15.                 com.cx.action.IntroduceOneself 
  16.              
  17.          
  18.      
  19.      
  20.  

原文鏈接:http://blog.csdn.net/shehun1/article/details/6691462

【編輯推薦】

  1. Java 8整裝待發(fā) 圖謀云計算
  2. Java 7是蜜糖還是毒藥?
  3. 選用Ibatis和Hibernate的區(qū)別
  4. JRuby和Java 7 我們可以期待什么
  5. Flex前端與Java服務(wù)端交互,反射機制挑大旗

文章標(biāo)題:Flex與Java中的Object交互
網(wǎng)頁鏈接:http://www.dlmjj.cn/article/dpdhgdg.html