技术开发 频道

用Java+Flex编写一个简单而强大的RIA

  关于清单 3,这里还有几点说明:

  一个 MXML 文档的根元素是 Application 类的一个子类。

  mx:Style 元素允许 CSS 属性定义 UI 组件的本地样式。样式设计通过使用本地样式定义(见 清单 3)、对外部样式表的引用、组件内的内联样式以及 ActionScript 中的 setStyle 方法完成。

  RemoteObject 类表示与服务器执行远程操作的一个 HTTP 服务对象。

  mx:Script 元素包括 CDATA 区域中的 ActionScript 代码块。

  有一个布局(即 VBox 类)。

  每次在应用程序中声明一个 UI 组件(例如,TextArea)时,就产生一个实例变量,稍后可使用组件的 id 属性在应用程序内引用该变量。

  数据绑定通过大括号执行(例如, 将 TextArea 元素的 text 属性绑定到 ActionScript message 实例变量)。

  ActionScript

  MXML 定义 GUI,而 ActionScript 提供用于处理事件、绑定数据(通过 [Bindable] 元数据标记)的行为,以及调用远程服务的能力。在 清单 3 中,createContact、editContact、deleteContact 和 getAllContacts 方法都在服务器端调用远程方法。调用远程方法时,ActionScript 就有机会通过声明回调函数处理结果和任何错误了。在 清单 3 中,handleResult 函数将结果作为一个 Object 接收,并将其投射到一个 ArrayCollection。BlazeDS 将 List 转化为客户端上的一个 ArrayCollection。

  清单 4 展示了 ActionScript 类 Contact,创建该类的目的在于表示 Flash 端的联系对象。

  清单 4. ActionScript Contact 类

package bcit.contacts.dto {

[RemoteClass(alias
="bcit.contacts.Contact")]
public class Contact {

    
public function Contact() { id = -1; }

    
public var id:Number;
    
public var lastName:String;
    
public var firstName:String;
    
public var emailAddress:String;
    
public var phoneNumber:String;

    
public function toString():String {
        return id
+ ", " + firstName + " " + lastName + " " + emailAddress
            
+ " " + phoneNumber;
    }
}
}


  这些 ActionScript 对象被发送到服务器端,BlazeDS 在此发挥其魔力并将 ActionScript 对象转化为 Java 对象。ActionScript Contact 类被看作一个 Data Transfer Object (DTO)。

0
相关文章