`
zhao103804
  • 浏览: 124658 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

Flex 跟后台连接 一

    博客分类:
  • Flex
 
阅读更多

 

 

 

 

 

 

一、建立FlexJava交互的工程。

 

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

 

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

 

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

 

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

 

package org.entity;

 

publicclass Camerabasic implements java.io.Serializable {

 

    private String id;

 

    private String cameraid;

 

    private String name;

 

    private String brand;

 

    private String model;

 

    private String cameratype;

 

    private String factory;

 

    private String contactphonenum;

 

    private String focallength;

 

    private String codingstyle;

 

    private String installationaddr;

 

    private String installer;

 

    private String cadurl;

 

    private String controldistance;

 

    private String fov;

 

    get  set方法省略】

 

}

 

注意,由于这个实体类需要当做Java代码中方法的返回值传递给Flex中的AS代码,所以需要继承Serializable接口,否则将导致异常的发生。

 

  然后,在建立一个供Flex调用的Java类。代码如下

 

dao service省略。。。

 

在改例子中,使用的框架式spring+hibernate,写一个普通类供Flex调用的java类,如下:

 

 

 

package org.action.query;

 

 

 

import java.util.List;

 

import org.entity.Camerabasic;

 

import org.service.query.CameraService;

 

import org.springframework.context.ApplicationContext;

 

import org.springframework.context.support.ClassPathXmlApplicationContext;

 

 

 

publicclass CameAction{

 

 

 

    private CameraService cService;

 

    public CameraService getcService() {

 

       returncService;

 

    }

 

    publicvoid setcService(CameraService cService) {

 

       this.cService = cService;

 

    }

 

   

 

    public List<Camerabasic> getdataMe(){

 

       try {

 

           ApplicationContext context = new ClassPathXmlApplicationContext(new String[] {"applicationContext.xml"}); 

 

           cService = (CameraService) context.getBean("cService");

 

       } catch (Exception e) {

 

           e.printStackTrace();

 

       }

 

       returncService.getAll();

 

    }

 

}

 

这里就不连接数据库去操作了,因为本文重点放在Flex调用Java上,所以写个桩数据用以测试。

 

写完了这两个类,就需要在WebRoot/WEB-INF/flex/remoting-config.xml中配置用以调用这个Java类的信道了。具体代码如下:红色的为重点

 

<?xml version="1.0" encoding="UTF-8"?>

 

<service id="remoting-service"

 

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

 

    <adapters>

 

        <adapter-definition id="java-object" class="flex.messaging.services.remoting.adapters.JavaAdapter" default="true"/>

 

    </adapters>

 

    <default-channels>

 

        <channel ref="my-amf"/>

 

    </default-channels>

 

   <!-- 其中destination就是信道,properties是可以配置多个Java类,source是配置要调用Java类的包路径。 -->

 

    <destination id="came">

 

        <properties>

 

             <source>org.action.query.CameAction</source>

 

         </properties>

 

     </destination>

 

</service>

 

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

 

  在Flex Builder中创建一个Flex工程。名称为FlexApp。如图所示

 

  在Flex Builder中创建一个Flex工程。名称为FlexApp。如图所示

  注意Project LocationFolder要选择MyEclipse建立的Web工程的WebRoot下。Server technology选择J2EE
点击[Next]按钮进入下一页。如图

  注意Server locationRoot folder要选择Java Web工程的WebRoot路径。Root URLJava web工程的访问路径,由于使用的是Tomcat服务器,工程名为FlexTest,所以路径是http://localhost:8080/FlexTest/,而
Context root
则是Java Web项目的工程名。完成后点击那个[Validate Configuration]进行验证,如果窗口上方显示如上图所示的黄三角就说明可以进行下一步操作了。

 

  顺利建立完Flex工程后,需要注意是否报错,如果报错,请注意调整Flex SDK的版本。

 

  没问题后,就要创建一个AS的类,用来接收Java程序的返回值了,也就是那个CameEntity。代码如下:

 

package com.controller

 

{

 

 

 

   [Bindable]

 

   [RemoteClass(alias="org.entity.Camerabasic")]

 

   publicclass CameEntity

 

   {

 

      publicvar id:String;

 

      publicvar cameraid:String;

 

      publicvar name:String;

 

      publicvar brand:String;

 

      publicvar model:String;

 

      publicvar cameratype:String;

 

      publicvar factory:String;

 

      publicvar contactphonenum:String;

 

      publicvar focallength:String;

 

      publicvar codingstyle:String;

 

      publicvar installationaddr:String;

 

      publicvar installer:String;

 

      publicvar cadurl:String;

 

      publicvar controldistance:String;

 

      publicvar fov:String;

 

     

 

       

 

      publicfunction CameEntity()

 

      {

 

      }

 

   }

 

}

 

这里[Bindable]是可绑定的[RemoteClass(alias="org.entity.Camerabasic")]是和Java代码中的Camerabasic类关联起来。这样就可以利用类型转换来将Java对象转换为AS对象了。

 

  现在让我们在Flex中调用这个Java代码吧。代码如下:青色标注为重点

 

<?xml version="1.0" encoding="utf-8"?>

 

<s:VGroup xmlns:fx="http://ns.adobe.com/mxml/2009"

 

        xmlns:s="library://ns.adobe.com/flex/spark"

 

        xmlns:mx="library://ns.adobe.com/flex/mx"

 

        xmlns:iframe="com.view.iframe.*"

 

        xmlns:sgclass="com.common.globe.sgclass.*"

 

        width="100%" height="100%" gap="0" creationComplete="init()">

 

   creationComplete为该组件创建完成后调用的方法】

 

   <fx:Declarations>

 

      <!-- 将非可视元素(例如服务、值对象)放在此处 -->

 

      <s:RemoteObject id="getdataRe" destination="came">

 

         <s:method name="getdataMe" result="getlist(event)">

 

          

 

        </s:method>

 

      </s:RemoteObject>

 

RemoteObjectid为唯一标识,destination的值需要和javaremoting-config.xml中的destination中的id一致;s:method中的name值需要和java中的普通类中需要调用的方法名一致,result为回调函数,创建回调函数在此写逻辑方法,即在as中写】

 

</fx:Declarations>

 

   <fx:Script>

 

      <![CDATA[

 

     

 

      import com.controller.CameEntity;

 

     

 

      import mx.collections.ArrayCollection;

 

      import mx.containers.Form;

 

      import mx.controls.Alert;

 

      import mx.rpc.events.ResultEvent;

 

      privatefunction init():void{

 

         getdataRe.getdataMe();

 

【在此init()方法中,创建组件完成调用的方法,调用的方式为RemoteObjectid为唯一标识 s:method中的name值,即可完成调用java后台的,返回数据,给result调用函数。】

 

      }

 

     

 

      privatefunction getlist(event:ResultEvent):void{

 

        dataGrid.dataProvider = event.result as ArrayCollection;

 

      }

 

【写该回调函数方法,ResultEvent得到调用java后台返回的数据,将返回的数据转换类型给dataGrid组件的id值。】

 

     

 

     

 

      ]]>

 

   </fx:Script>

 

   <s:Group width="100%" height="60">

 

      <mx:Canvas x="0" y="120" width="100%" height="388">

 

           <s:Label x="5" y="1" height="26" fontSize="18" text="查询结果"/>

 

           <mx:DataGrid x="3" y="23" width="269" height="365" id="dataGrid">

 

              <mx:columns>

 

                 <mx:DataGridColumn dataField="name" headerText="建筑名"/>

 

              </mx:columns>

 

           </mx:DataGrid>

 

          

 

        </mx:Canvas>

 

      </s:Group>

 

</s:VGroup>

 

 

 

有不理解的可以找我:QQ:2734469636

                                    邮箱:qinfen912161695@163.com

 

 

 

 

  • 大小: 73.4 KB
  • 大小: 62.1 KB
分享到:
评论

相关推荐

    Flex 连接后台Java的几种方法选择

    Blazeds 是 Adobe 在 2008 年初推出的一个 Flex 连接 JavaEE 后台的一个产品,是 LiveCycle Data Services 的一个子集。Blazeds 提供了一个基于服务器的 Java 远程控制 (remoting) 和 Web 消息传递 (messaging) 技术...

    flex与后台通讯方式

    1. BlazeDS和LCDS:Flex与后台通信通常借助于BlazeDS或LCDS(LiveCycle Data Services),这两个都是Adobe提供的服务器端技术,用于实现Flex与Java或.NET等后端服务的集成。BlazeDS是免费的,而LCDS提供了更高级的...

    flex与后台servlet建立连接

    在这个"flex与后台servlet建立连接"的例子中,我们关注的是如何让Flex前端与后台的Java Servlet进行通信。Flex应用通常使用AMF(Action Message Format)或SOAP等协议与服务器进行数据交换。AMF是一种高效的数据序列...

    flex 与java后台整合 PPT

    Flex的强项之一是其强大的数据绑定机制,可以在UI组件和后台数据之间建立直接的连接。在Flex中,可以将后台返回的数据对象直接绑定到UI组件,实现数据的实时更新。 6. **错误处理和调试**: 整合过程中,错误处理...

    flex通过remote连接后台

    在本文中,我们将深入探讨如何使用Flex通过RemoteObject连接后台服务,以及与之相关的其他重要Flex开发技术。Flex是一款强大的富互联网应用程序(RIA)开发框架,它允许开发者创建交互式、响应式的Web应用。让我们...

    flex与后台交互的常用四种方式

    Flex作为一个强大的富互联网应用程序(RIA)开发框架,与后台服务器的交互是其核心功能之一。本文将详细探讨Flex与后台交互的四种常见方式:HTTPService、WebService、RemoteObject和URLLoader,以及它们各自的特点...

    Flex如何让前台链接后并访问数据库

    1. **配置后台服务**:首先,你需要在后台服务器上设置一个能够处理Flex请求的服务。例如,使用Java Spring、PHP或.NET等技术,创建一个RESTful API或使用AMF服务。服务应能接收Flex发送的请求,并处理与数据库的...

    Flex +BlazeDS+java后台分页的实现

    Flex + BlazeDS + Java 后台分页的实现是一个关键的技术环节,特别是在开发大型Web应用程序时,为了提高用户体验和系统性能,数据通常需要通过分页的方式进行加载。本方案主要探讨了如何在Flex前端和BlazeDS中间件与...

    Eclipse开发Flex新手必学例子(后台数据页面显示N种图表)

    1. **LineChart**:线图是最基本的数据可视化工具之一,用于显示连续数据趋势。在Flex中,我们可以使用mx.charts.LineChart组件来创建线图。数据通常是从后台的Java类或数据库中获取,然后通过数据绑定机制显示在...

    flex与spring连接java后台示例

    Flex是Adobe公司推出的一种基于ActionScript的开源框架,主要用于构建交互性强、用户体验良好的前端UI。而Spring则是Java领域的一个轻量级框架,它为应用程序提供依赖注入(DI)和面向切面编程(AOP)等功能,极大地...

    flex连接数据库的三种方法

    在Flex中,可以通过WebService组件与Java后台建立连接,进而访问数据库。这种方式常用于J2EE架构中,因为J2EE平台提供了丰富的工具和框架支持WebService的开发。 3. **RemoteObject** RemoteObject是Flex中最高效...

    Flex实例 Flex基础 Web+Flex+LCDS Flex跟Java交互

    1. **Flex基础**:Flex提供了一整套组件库,包括按钮、文本输入框、列表等,使得开发者可以快速构建具有专业外观和交互性的用户界面。MXML是一种声明式语言,用于布局组件和定义应用程序结构,而ActionScript则是一...

    flex与myeclipse连接

    1. Flex应用开发: - MXML:MXML是Flex中的标记语言,用于声明UI组件和事件处理函数。在给定的代码段中,可以看到 `&lt;s:Application&gt;` 根标签,它是Flex应用的起点,包含了FX和Spark命名空间的声明。`&lt;fx:Script&gt;` ...

    Flex如何连接数据库,通信的详细的教程

    1. **Flex与数据库的通信基础** Flex可以通过AMF(Action Message Format)或HTTP服务与服务器进行数据交换。AMF是一种高效的数据序列化格式,常用于与Adobe LiveCycle Data Services (LCDS) 或BlazeDS进行通信。...

    myeclipse融合flex,连接mysql的例子

    自己也是刚学flex不久,找了很多资料,终于整合了flex和eclipse的环境,并写了一个调用后台数据库的例子,里面有个word详细介绍了配置环境(这可不是偶写的),供大家参考,运行时候,自己先在mysql建个相应的数据库...

    flex拍照案例,java后台保存照片

    ### 一、Flex 拍照功能与 Java 后台保存照片 #### 1. Flex 案例概述 - **标题**:“Flex 拍照案例,Java 后台保存照片” - **描述**:此案例通过 Flex 实现前端拍照功能,并将拍到的照片数据传输至后端 Java 服务器...

    flex工程,前后台搭建

    本篇文章将详细介绍如何使用Flex Builder和Eclipse搭建一个基于Flex的前端工程与BlazeDS作为后台通信的架构。BlazeDS是一个由Adobe提供的开源项目,主要功能是实现Java应用程序与Flex客户端之间的远程调用(Remoting...

    flex+java+mysql登录

    以上就是关于"flex+java+mysql登录"这一主题的详细解释,涵盖了Flex客户端与Java后台的交互、数据库操作以及安全性的基本要点。理解并掌握这些技术,对于开发分布式应用程序具有重要的实践意义。

    Flex结合Java连接Oracle数据库实现用户登录

    1. **Flex客户端开发**:Flex使用MXML和ActionScript进行界面布局和业务逻辑处理。MXML是一种声明式的XML语法,用于定义UI组件和它们的属性,而ActionScript是面向对象的脚本语言,用于控制组件行为和执行复杂业务...

Global site tag (gtag.js) - Google Analytics