视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
flex调用java方法
2025-10-02 04:37:00 责编:小OO
文档
一、建立Flex与Java交互的工程。

  本文中讲到的交互是利用Blazeds的,因为这个是免费的,呵呵,我是穷人。

  首先就是去下载Blazeds的压缩包,这个可以从官网或者CSDN、JavaEye上下到。解压缩这个包,将里面的Blazeds.war解压,后面建立工程时要使用。

在MyEclipse中建立一个web工程,名为FlexTest。

  将刚才解压的Blazeds.war包中的“META-INF”与“WEB-INF”文件夹以及文件夹中的内容拷贝到工程的WebRoot下。WEB-INF中包含有Flex的配置文件以及Blazeds需要的Jar包。这时我们就可以在这个工程中写入Java代码了。本文以一个用户列表为例,建立用户实体类。代码如下:

  注意,由于这个实体类需要当做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">

     

          

      

    

       

    

    

        

             com.rocd.flex.biz.UserManager

         

    

 

  其中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。代码如下:

按 Ctrl+C 复制代码

按 Ctrl+C 复制代码

  这里[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程序,如下图所示:下载本文

显示全文
专题