日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

blazeds调用java_Flex使用Blazeds与Java交互及自定义对象转换详解(转)

發布時間:2024/9/27 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 blazeds调用java_Flex使用Blazeds与Java交互及自定义对象转换详解(转) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、建立Flex與Java交互的工程。

本文中講到的交互是利用Blazeds的,因為這個是免費的,呵呵,我是窮人。

首先就是去下載Blazeds的壓縮包,這個可以從官網或者CSDN、JavaEye上下到。解壓縮這個包,將里面的Blazeds.war解壓,后面建立工程時要使用。

在MyEclipse中建立一個web工程,名為FlexTest。(注意:這個工程的JDK一定是1.5或以上版本,本文使用6.0)

將剛才解壓的Blazeds.war包中的“META-INF”與“WEB-INF”文件夾以及文件夾中的內容拷貝到工程的WebRoot下。WEB-INF中包含有Flex的配置文件以及Blazeds需要的Jar包。這時我們就可以在這個工程中寫入Java代碼了。本文以一個用戶列表為例,建立用戶實體類。代碼如下:

代碼

package com.rocd.flex.entity;

import java.io.Serializable;

public class UserBean implements Serializable {

private String userName;

private String password;

private int age;

private String email;

public String getUserName() {

return userName;

}

public void setUserName(String userName) {

this.userName = userName;

}

public String getPassword() {

return password;

}

public void setPassword(String password) {

this.password = password;

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

public String getEmail() {

return email;

}

public void setEmail(String email) {

this.email = email;

}

}

注意,由于這個實體類需要當做Java代碼中方法的返回值傳遞給Flex中的AS代碼,所以需要繼承Serializable接口,否則將導致異常的發生。

然后,在建立一個供Flex調用的Java類。代碼如下

package com.rocd.flex.biz;

import java.util.ArrayList;

import java.util.List;

import com.rocd.flex.entity.UserBean;

public class UserManager {

public List getUserList() {

List list = new ArrayList();

for (int i = 0; i < 10; i++) {

UserBean user = new UserBean();

user.setUserName("用戶" + i);

user.setPassword("123");

user.setAge(20 + i);

user.setEmail("user" + i + "@aaa.com");

list.add(user);

}

return list;

}

}

這里就不連接數據庫去操作了,因為本文重點放在Flex調用Java上,所以寫個樁數據用以測試。

寫完了這兩個類,就需要在WebRoot/WEB-INF/flex/remoting-config.xml中配置用以調用這個Java類的信道了。具體代碼如下:

class="flex.messaging.services.RemotingService">

class="flex.messaging.services.remoting.adapters.JavaAdapter"

default="true"/>

com.rocd.flex.biz.UserManager

其中destination就是信道,properties是可以配置多個Java類,source是配置要調用Java類的包路徑。

配置多個destination:

1

2   

3   com.bless.login.service.impl.LoginServiceImpl

4   

5

6

7   

8   com.bless.ospm.service.impl.LoginInfoServiceImpl

9   

10

到此,Java部分的代碼就寫完了。下面是Flex中的代碼。

在Flex Builder中創建一個Flex工程。名稱為FlexApp。如圖所示

注意Server location中Root folder要選擇Java Web工程的WebRoot路徑。Root URL是Java web工程的訪問路徑,由于使用的是Tomcat服務器,工程名為FlexTest,所以路徑是http://localhost:8080/FlexTest/,而 Context root則是Java Web項目的工程名。完成后點擊那個[Validate Configuration]進行驗證,如果窗口上方顯示如上圖所示的“黃三角”就說明可以進行下一步操作了。

順利建立完Flex工程后,需要注意是否報錯,如果報錯,請注意調整Flex SDK的版本。

沒問題后,就要創建一個AS的類,用來接收Java程序的返回值了,也就是那個UserBean。代碼如下:

package com.rocd.flex.entity

{

[Bindable]

[RemoteClass(alias="com.rocd.flex.entity.UserBean")]

public class UserBean

{

public var userName:String;

public var password:String;

public var age:int;

public var email:String;

}

}

這里[Bindable]是可綁定的,[RemoteClass(alias="com.rocd.flex.entity.UserBean")]是和Java代碼中的UserBean類關聯起來。這樣就可以利用類型轉換來將Java對象轉換為AS對象了。

現在讓我們在Flex中調用這個Java代碼吧。代碼如下:

fontSize="12" initialize="init()">

import com.rocd.flex.entity.UserBean;

import mx.collections.ArrayCollection;

import mx.rpc.events.ResultEvent;

private function init():void

{

UserManager.getUserList();

UserManager.addEventListener(ResultEvent.RESULT,getUserList);

}

private function getUserList(event:ResultEvent):void

{

var userList:ArrayCollection = ArrayCollection(event.result);

var userList_FlexData:ArrayCollection = new ArrayCollection();

for (var i:int = 0; i < userList.length; i++)

{

var user:UserBean = UserBean(userList.getItemAt(i));

userList_FlexData.addItem(user);

}

dataGrid.dataProvider = userList_FlexData;

}

]]>

showBusyCursor="true" />

啟動Tomcat服務器后運行這個Flex程序,如下圖所示:

總結

以上是生活随笔為你收集整理的blazeds调用java_Flex使用Blazeds与Java交互及自定义对象转换详解(转)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。