Java与Flex间的通信构造

来源:互联网 发布:js namespace 编辑:程序博客网 时间:2024/04/23 22:17

 

先建立后台Java类:

 

package com.travelsky.openseats.blaze;

import com.travelsky.openseats.biz.basetemplate.BaseTemplateBizRemote;
import com.travelsky.openseats.client.remoting.config.Context;
import com.travelsky.openseats.client.remoting.config.IServiceLocator;
import com.travelsky.openseats.common.PageResult;
import com.travelsky.openseats.common.QueryCriteria;

public class BaseTemplateBlazeService {
 
 
 private PageResult pr ;   //返回分页对象
 
 private BaseTemplateBizRemote service;
 

 /**
  * 根据分页查询对象 返回分页查询结果
  * @param qc
  * @return
  */
 public PageResult getBaseTemplateQueryList(QueryCriteria qc){  //分页查询对象
  
  IServiceLocator serviceLocator = Context.getServiceLocator();
  
  service=(BaseTemplateBizRemote)serviceLocator.getService(BaseTemplateBizRemote.class);
  
  pr = service.findByQueryParam(qc);
 
  
  return pr;
    
 }
 
}

 

 

前台Flex文件中设置:

 

 <mx:RemoteObject id="BTService" destination="BaseTemplateBlazeService" showBusyCursor="true">  
        <mx:method name="getBaseTemplateQueryList" result="setBaseTemplateResults(event)"    fault="onBlazeDSFalut(event)" />    
 </mx:RemoteObject>

 

这里主要注意destination 以及method的name这些属性,这些都是要与后台服务相对应的,当然它们之间的串连,还需要对remote-config.xml进行配置:

 

 

 

remote-config.xml中设置

 

 <destination id="BaseTemplateBlazeService"> 
  <properties> 
   <source> 
       com.travelsky.openseats.blaze.BaseTemplateBlazeService  
   </source> 
   <scope>application</scope> 
  </properties> 
    </destination>

 

这样,在前台调用如下方法,即可访问后台Java程序代码了:

 

         qc=new QueryCriteria();
         
         qc.currentIndex=0;
         qc.pageSize=30;
         
         qc.queryCondition['airline']=airline;
         qc.queryCondition['aircraftType']=aircraft;
         qc.queryCondition['typeV']=typev;
         qc.queryCondition['authAirlines']=["CA","CZ","HU"];
                 
         BTService.getBaseTemplateQueryList(qc);

这里涉及到Java与Flex间复杂对象(本例中的QueryCriteria类)的传递问题,下节继续!