案例学习BlazeDS+Spring之五InSync03强类型
来源:互联网 发布:网络男女歌手唱的歌 编辑:程序博客网 时间:2024/05/16 08:57
InSync03:强类型
一、运行DEMO:
1、运行程序:http://localhost:8400/spring-flex-testdrive/insync03/index.html;
2、单击Search按钮,从数据库获取所有的联系人。
3、在Search文本框输入几个字符,单击“Search”按钮,按名字来查找联系人。
4、在DataGrid中选择一个联系人。
5、在联系人窗体中编辑该联系人,单击"Save"来保存修改。
二、理解代码:
1、insync03.mxml:
<local:ContactForm contact="{dg.selectedItem as Contact}" width="70%" height="100%"/>
2、ContactForm.mxml:
该窗体上的控件用于显示contact的信息,contact成员变量用于控件绑定。
[Bindable] public var contact:Contact;
保存和删除的按钮,分别调用RemoteObject的方法,ro.update(contact)和ro.remove(contact);
也捕获了远程调用后触发的事件。
<mx:RemoteObject id="ro" destination="contactService" fault="faultHandler(event)" endpoint="http://localhost:8400/spring-flex-testdrive/messagebroker/amf">
</mx:RemoteObject>
3、Contact.as
该类是FLASH里的AS类,Contact类只是定义了一些公共的成员变量。重要的是远程类的标注。这个类用于与远程的JAVA类进行映射。
[Bindable]
[RemoteClass(alias="org.springframework.flex.samples.contact.Contact")]
4、Contact.java:
该类位于服务端,Contact要实现Serializable,用于与FLASH中的AS类进行序列化/反序列化。而实现序列化,定义serialVersionUID成员变量即可。
static final long serialVersionUID = 103844514947365244L;
还有各私有属性的get/set公开方法。
5、更新/删除操作
在前台的ContactForm里,ro.update(contact)或ro.remove(contact)后,FLASH里的contact实例会被序列化,然后传送到服务端,进行反序列化后,变成可供JAVA应用操作的JAVA实例。
contactDAO bean的更新和删除方法是:
三、小结:
在本DEMO中,使用强类型的contact对象。Contact是AS类,它代表org.springframework.flex.samples.contact.Contact Java类。这个映射过程要求AS中定义类时使用标注来定义其对应的远程类,而远程类要实现序列化的接口。
如Contact.as中的[RemoteClass(alias="org.springframework.flex.spring.samples.contact.Contact")] 标注用来指出Contact AS实例发送到服务器被反序列为org.springframework.flex.spring.samples.contact.Contact服务端的Java实例,同样的,从服务器上接收的org.springframework.flex.spring.samples.contact.Contact Java实例将被反序列为Contact AS实例。
来自:http://blog.sina.com.cn/s/blog_67532f7c0100oqsj.html
- 案例学习BlazeDS+Spring之五InSync03强类型
- 案例学习BlazeDS+Spring之五InSync03强类型
- 案例学习BlazeDS+Spring之二Spring BlazeDS Integration 101
- 案例学习BlazeDS+Spring之二Spring BlazeDS Integration 101
- 案例学习BlazeDS+Spring之十二:Traderdesktop
- 案例学习BlazeDS+Spring之十:Chat(
- 案例学习BlazeDS+Spring之十:Chat
- 案例学习BlazeDS+Spring之十二:Traderdesktop
- 案例学习BlazeDS+Spring之十四:Collaboration
- 案例学习BlazeDS+Spring之一(
- 案例学习BlazeDS+Spring之一
- 案例学习BlazeDS+Spring之十一:Simple Data Push
- 案例学习BlazeDS+Spring之九Company Manager
- 案例学习BlazeDS+Spring之七InSync05新增联系人
- 案例学习BlazeDS+Spring之四InSync02使用RemoteObject事件
- 案例学习BlazeDS+Spring之三InSync01查找联系人
- 案例学习BlazeDS+Spring之三InSync01查找联系人
- 案例学习BlazeDS+Spring之四InSync02使用RemoteObject事件
- 实用的搜索引擎资源大搜罗
- 案例学习BlazeDS+Spring之七InSync05新增联系人
- 案例学习BlazeDS+Spring之六InSync04打开多个联系人
- (三)TagtSupport类简介
- C#中的委托,匿名方法、泛型委托和Lambda表达式表达式演变过程
- 案例学习BlazeDS+Spring之五InSync03强类型
- 案例学习BlazeDS+Spring之四InSync02使用RemoteObject事件
- 打印数字金字塔 <Introduction to Programming with C++ comprehensive Version :Page_89>
- 学习NodeJS第五天:JavaScript的继承
- android程序中json解析小例子
- 案例学习BlazeDS+Spring之三InSync01查找联系人
- Spring中报"Could not resolve placeholder"的解决方案
- 用Apache配置多个域名的方法(绝对成功!)
- 解决QtWebKit中QWebElement无法取到TextNode的问题