Flex的remoteObject研究----------------加载数据(一)

本文介绍了一个使用Flex框架实现的应用程序如何与后端服务进行数据交互的过程。具体展示了通过mxml文件配置远程对象来调用服务层方法,完成学生信息的获取,并在界面上展示这些信息的技术细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

service层的内容,模拟了数据库的操作:

public class StudentService {

private static List list = new ArrayList();

public List saveStudent(Student stu) {
list.add(stu);
System.out.println("........." + list.size());
return list;
}

public List deleteStudent(String studentId) {
for (int i = 0; i < list.size(); i++) {
Student s = (Student) list.get(i);
if (s.getStudentId().equals(studentId)) {
list.remove(i);
}
}
return list;
}

public List updateStudent(Student stu) {
for (int i = 0; i < list.size(); i++) {
Student s = (Student) list.get(i);
if (s.getStudentId().equals(stu.getStudentId())) {
list.remove(i);
list.add(stu);
}
}
return list;
}

public List getAll() {
Student stu = new Student();
stu.setStudentAge("32");
stu.setStudentBirthday("1977");
stu.setStudentId("001");
list.add(stu);
return list;
}
}

mxml文件的内容:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" initialize="service.getAll();">
<mx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.rpc.events.ResultEvent;
import mx.collections.ArrayCollection;
[Bindable]
private var list:ArrayCollection;

private function failure():void {
Alert.show("加载数据失败");
}

private function loadData(event:ResultEvent):void{
list = ArrayCollection(event.result);
}
]]>
</mx:Script>

<mx:RemoteObject id="service" destination="StudentService" fault="{failure();}" concurrency="single">
<mx:method name="getAll" result="{loadData(event);}"/>
</mx:RemoteObject>

<mx:DataGrid dataProvider="{list}">
<mx:columns>
<mx:DataGridColumn dataField="studentId" headerText="学号"/>
<mx:DataGridColumn dataField="studentAge" headerText="年龄"/>
<mx:DataGridColumn dataField="studentBirthday" headerText="生日"/>
</mx:columns>
</mx:DataGrid>
</mx:Application>

代码分析:

(1)initialize="service.getAll();"调用的是<mx:method name="getAll" result="{loadData(event);}"/>方法,service是<mx:RemoteObject>的id

(2)在<mx:method name="getAll" result="{loadData(event);}"/>里面的name属性,必须和service层里面getAll()这个方法一致(完全一样)

(3)service层返回的list集合在ActionScript里面可以用ArrayCollection接收,返回的数据被封装在event.result里面,形式可以是

list = event.result as ArrayCollection或者 list = ArrayCollection(event.result)这样

(4)[Bindable] private var list:ArrayCollection; 在声明list的时候,必须要指定其为[Bindable],否则将无法从服务器上取值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值