Flex使用RemotingObject和后台通信的基本步骤

代码如果混乱看附件

编写java类,类的方法如果要返回多个对象则一般返回对象数组,这里使用的是spring+hibernate

  • java 代码
    1. package cn.com.fire.fireshow.service;   
    2.   
    3. import java.io.Serializable;   
    4. import java.util.Date;   
    5. import java.util.Iterator;   
    6. import java.util.List;   
    7.   
    8. import org.springframework.context.ApplicationContext;   
    9. import org.springframework.context.support.FileSystemXmlApplicationContext;   
    10.   
    11. import cn.com.fire.fireshow.domain.Meetings;   
    12. import cn.com.fire.util.dao.BaseDAO;   
    13. import cn.com.fire.util.page.PageBean;   
    14.   
    15. public class MeetingService {   
    16.        
    17.     private BaseDAO dao;   
    18.        
    19.     public void setDao(BaseDAO dao) {   
    20.         this.dao = dao;   
    21.     }   
    22.        
    23.     public MeetingService()   
    24.     {   
    25.         ApplicationContext ctx = ApplicationContextInit.getApplicationContext();   
    26.         dao = (BaseDAO)ctx.getBean("baseDAO");   
    27.     }   
    28.        
    29.     public void insertMeeting(Meetings meeting)   
    30.     {   
    31.         dao.insertObject(meeting);   
    32.     }   
    33.        
    34.     public void deleteMeetingByID(Serializable meetingID)   
    35.     {   
    36.         dao.deleteObjectByID(Meetings.class, meetingID);   
    37.     }   
    38.        
    39.     public void deleteMeetingByIDs(Serializable[] meetingIDs)   
    40.     {   
    41.         dao.deleteObjectByIDs(Meetings.class, meetingIDs);   
    42.     }   
    43.        
    44.     public void updateMeeting(Meetings meeting)   
    45.     {   
    46.         dao.updateObject(meeting);   
    47.     }   
    48.        
    49.     public void updateMeetings(Meetings[] meetings)   
    50.     {   
    51.         dao.updateObject(meetings);   
    52.     }   
    53.        
    54.     public Meetings queryMeetingByID(Serializable meetingID)   
    55.     {   
    56.         return (Meetings)dao.queryObjectByID(Meetings.class, meetingID);   
    57.     }   
    58.        
    59.     public List queryMeetingPage(PageBean pageBean, String hql)   
    60.     {   
    61.         return dao.queryObjectPage(pageBean, hql);   
    62.     }   
    63.        
    64.     public Meetings[] queryMeetingByHQL(String hql)   
    65.     {   
    66.         List list = dao.queryObjectByHQL(hql);   
    67.         Meetings[] meetings = new Meetings[list.size()];   
    68.         for (int i = 0; i < list.size(); i++) {   
    69.             Meetings meeting = (Meetings)list.get(i);   
    70.             meetings[i] = meeting;   
    71.         }   
    72.         return meetings;   
    73.     }   
    74.        
    75.     public static void main(String[] args)   
    76.     {   
    77.         MeetingService ms = new MeetingService();   
    78.         Meetings meeting = new Meetings();   
    79.         meeting.setMaxClient(new Integer(10));   
    80.         meeting.setMeetingEndDate(new Date());   
    81.         meeting.setMeetingMotif("中国人");   
    82.         meeting.setMeetingName("视频会议");   
    83.         meeting.setMeetingOrganiger("大陆的中国人");   
    84.         meeting.setMeetingPassword("password");   
    85.         meeting.setMeetingStartDate(new Date());   
    86.         //ms.insertMeeting(meeting);   
    87.         //List list = ms.queryMeetingByHQL("from Meetings meetings");   
    88.         //System.out.println(list.size());   
    89.     }   
    90. }   

 

编辑项目的WEB-INF/flex/目录下的remoting-config.xml,添加对java类的引用:

  1. <destination id="meetingService">  
  2.         <properties>  
  3.             <source>cn.com.fire.fireshow.service.MeetingServicesource>  
  4.         properties>  
  5.     destination>  

 

编写前台mxml文件

  1. <!---->xml version="1.0" encoding="utf-8"?>  
  2. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="initApp()">  
  3.     <mx:Script>  
  4.         <!----> 
  5.             import mx.controls.Alert;  
  6.             import mx.utils.ArrayUtil;  
  7.               
  8.             private function initApp():void  
  9.             {  
  10.                 queryMeetings.queryMeetingByHQL("from Meetings meetings");  
  11.             }  
  12.             private function formatDate(item:Object,column:DataGridColumn):String  
  13.             {  
  14.                 return df.format(item.meetingEndDate);  
  15.             }// df 是一个 DateFormatter,在下面会给出。关于如何格式化DataGrid的显示  
  16.             private function formatDate2(item:Object,column:DataGridColumn):String  
  17.             {  
  18.                 return df.format(item.meetingStartDate);  
  19.             }  
  20.             private function proccessResult(result:Object):void  
  21.             {  
  22.                 meetingDG.dataProvider = ArrayUtil.toArray(result);  
  23.             }  
  24.         ]]>  
  25.     mx:Script>  
  26.        
  27.     <mx:DateFormatter id="df" formatString="YYYY年MM月DD日"/>  
  28.        
  29.     <mx:RemoteObject id="queryMeetings" destination="meetingService" showBusyCursor="true" result="proccessResult(event.result)" fault="Alert.show(event.fault.faultString,'Error')">  
  30.     mx:RemoteObject>  
  31.        
  32.     <mx:TitleWindow width="981" height="329" layout="absolute" title="会议管理列表" horizontalCenter="-48" verticalCenter="-92.5">  
  33.         <mx:Grid width="802" horizontalCenter="-22" y="83">  
  34.             <mx:GridRow width="100%" height="100%">  
  35.                 <mx:GridItem width="100%" height="100%">  
  36.                     <mx:DataGrid id="meetingDG" editable="true" enabled="true">  
  37.                         <mx:columns>  
  38.                             <mx:DataGridColumn headerText="会议编号" dataField="meetingId"/>  
  39.                             <mx:DataGridColumn headerText="会议名称" dataField="meetingName"/>  
  40.                             <mx:DataGridColumn headerText="会议密码" dataField="meetingPassword"/>  
  41.                             <mx:DataGridColumn headerText="最大参与人数" dataField="maxClient"/>  
  42.                             <mx:DataGridColumn headerText="会议发起人" dataField="meetingOrganiger"/>  
  43.                             <mx:DataGridColumn headerText="会议主题" dataField="meetingMotif"/>  
  44.                             <mx:DataGridColumn headerText="会议开始时间" dataField="meetingStartDate" labelFunction="formatDate2"/>  
  45.                             <mx:DataGridColumn headerText="会议结束时间" dataField="meetingEndDate" labelFunction="formatDate"/>  
  46.                         mx:columns>  
  47.                     mx:DataGrid>  
  48.                 mx:GridItem>  
  49.             mx:GridRow>  
  50.             <mx:GridRow width="100%" height="100%">  
  51.                 <mx:GridItem width="100%" height="100%">  
  52.                     <mx:Button label="保存会议"/>  
  53.                     <mx:Button label="删除会议"/>  
  54.                 mx:GridItem>  
  55.             mx:GridRow>  
  56.         mx:Grid>  
  57.     mx:TitleWindow>  
  58.        
  59. mx:Application>  

你可能感兴趣的:(DAO,spring,Hibernate,Flex,Adobe)