网站建设设计主要系统,张掖网站设计公司,高邮企业网站建设公司哪家便宜,电子商务网址大全一、建立Flex与Java交互的工程。本文中讲到的交互是利用Blazeds的#xff0c;因为这个是免费的#xff0c;呵呵#xff0c;我是穷人。首先就是去下载Blazeds的压缩包#xff0c;这个可以从官网或者CSDN、JavaEye上下到。解压缩这个包#xff0c;将里面的Blazeds.war解压因为这个是免费的呵呵我是穷人。首先就是去下载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代码了。本文以一个用户列表为例建立用户实体类。代码如下代码1 package com.rocd.flex.entity;23 import java.io.Serializable;45 public class UserBean implements Serializable {6 private String userName;7 private String password;8 private int age;9 private String email;1011 public String getUserName() {12 return userName;13 }1415 public void setUserName(String userName) {16 this.userName userName;17 }1819 public String getPassword() {20 return password;21 }2223 public void setPassword(String password) {24 this.password password;25 }2627 public int getAge() {28 return age;29 }3031 public void setAge(int age) {32 this.age age;33 }3435 public String getEmail() {36 return email;37 }3839 public void setEmail(String email) {40 this.email email;41 }42 }43注意由于这个实体类需要当做Java代码中方法的返回值传递给Flex中的AS代码所以需要继承Serializable接口否则将导致异常的发生。然后在建立一个供Flex调用的Java类。代码如下代码1 package com.rocd.flex.biz;23 import java.util.ArrayList;4 import java.util.List;56 import com.rocd.flex.entity.UserBean;78 public class UserManager {9 public List getUserList() {10 List list new ArrayList();11 for (int i 0; i 10; i) {12 UserBean user new UserBean();13 user.setUserName(用户 i);14 user.setPassword(123);15 user.setAge(20 i);16 user.setEmail(user i aaa.com);17 list.add(user);18 }19 return list;20 }21 }22这里就不连接数据库去操作了因为本文重点放在Flex调用Java上所以写个桩数据用以测试。写完了这两个类就需要在WebRoot/WEB-INF/flex/remoting-config.xml中配置用以调用这个Java类的信道了。具体代码如下代码1 ?xml version1.0 encodingUTF-8?2 3 classflex.messaging.services.RemotingService4 5 6 classflex.messaging.services.remoting.adapters.JavaAdapter7 defaulttrue/8 9 10 11 12 13 14 com.rocd.flex.biz.UserManager15 16 17 其中destination就是信道properties是可以配置多个Java类source是配置要调用Java类的包路径。到此Java部分的代码就写完了。下面是Flex中的代码。在Flex Builder中创建一个Flex工程。名称为FlexApp。如图所示注意Project Location的Folder要选择MyEclipse建立的Web工程的WebRoot下。Server technology选择J2EE点击[Next]按钮进入下一页。如图注意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(aliascom.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(aliascom.rocd.flex.entity.UserBean)]是和Java代码中的UserBean类关联起来。这样就可以利用类型转换来将Java对象转换为AS对象了。现在让我们在Flex中调用这个Java代码吧。代码如下1 ?xml version1.0 encodingutf-8?2 3 fontSize12 initializeinit()4 5 6 import com.rocd.flex.entity.UserBean;7 import mx.collections.ArrayCollection;8 import mx.rpc.events.ResultEvent;910 private function init():void11 {12 UserManager.getUserList();13 UserManager.addEventListener(ResultEvent.RESULT,getUserList);14 }1516 private function getUserList(event:ResultEvent):void17 {18 var userList:ArrayCollection ArrayCollection(event.result);19 var userList_FlexData:ArrayCollection new ArrayCollection();20 for (var i:int 0; i userList.length; i)21 {22 var user:UserBean UserBean(userList.getItemAt(i));23 userList_FlexData.addItem(user);24 }25 dataGrid.dataProvider userList_FlexData;26 }27 ]]28 29 30 showBusyCursortrue /3132 33 34 35 36 37 38 39 40 41 42启动Tomcat服务器后运行这个Flex程序如下图所示我对Flex与Java交互这块还不是很熟悉所以有什么不对的地方或者有更简单的方式请大家给出建议。