zoukankan      html  css  js  c++  java
  • Flex与SSH集成

    Flex与SSH集成  
    
    2010-06-26 11:00:36|  分类: flex |举报|字号 订阅
    Flex与SSH集成
    1,下载blazeds_bin_3-0-0-544.zip 包,将其解压 取下blazeds.war包 更改为blazeds.rar ,并解压
    2 将上一步解压的web-inf/lib/下的包复制到工程的lib下
    3,将flex文件夹 复制到工程的web-inf下
    4 将classes下的文件复制到工程的src下
    5在web.xml中加入
     
    <!-- flex -->
     <servlet> 
        <servlet-name>flex</servlet-name> 
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
        <init-param> 
             <param-name>contextConfigLocation</param-name> 
               <param-value>/WEB-INF/classes/flex-application-config.xml</param-value> 
        </init-param>
        <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
        <servlet-name>flex</servlet-name> 
        <url-pattern>/ssh/*</url-pattern> 
    </servlet-mapping> 
    <!-- end flex -->
    6,在src下建一个flex-application-config.xml文件
    加入
    <?xml version="1.0" encoding="UTF-8"?> 
    <beans xmlns="http://www.springframework.org/schema/beans" 
        xmlns:flex="http://www.springframework.org/schema/flex" 
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
       xsi:schemaLocation="   
    http://www.springframework.org/schema/beans   
    http://www.springframework.org/schema/beans/spring-beans-2.5.xsd   
    http://www.springframework.org/schema/flex   
    http://www.springframework.org/schema/flex/spring-flex-1.0.xsd"> 
    <flex:message-broker/> 
    <!— 下面是表示 在spring配置文件中配置的bean-->
    <flex:remoting-destination ref="flowServer"/>
    </beans>
    以下内容
    6,加入flex与spring所依赖的包
    Flex与SSH集成 - 花落谁家 - zhangcb666的博客
     
    7 编写 java 类
     
    1>    编写类体DeptNode.class
     
    package com.svse.entity.bean;
     
    import java.util.ArrayList;
    import java.util.List;
    /***
    *  注: 此类可以不用和Flex映射 ,因为在Flex端,我们不用把Object对象强转为此对象
    **/
    public class DeptNode {
     
        private int id;
        private String name;
        private DeptNode parent;
       
        private List<DeptNode> children = null;
     
        public DeptNode(){}
        public DeptNode(int id ,String name){
           this.id = id;
           this.name = name;
        }
        /*************get and set 省略****************/
       
    }
    2>    编写接口IflowServer.class
    package com.svse.server;
     
    import java.util.List;
    import com.svse.entity.bean.DeptNode;
     
    public interface IFlowServer {
                  //得到部门
           List<DeptNode> getDeparts(int deptId);
    }
     
     
    3>    编写实现类
    package com.svse.server.impl;
     
    import java.util.List;
     
    import com.svse.entity.bean.DeptNode;
    import com.svse.server.IFlowServer;
     
    public class FlowServer implements IFlowServer {
       
        //得到部门
        public List<DeptNode> getDeparts(int deptId){
           List<DeptNode> list = new ArrayList<DeptNode>();    
           DeptNode node = new DeptNode();
           node.setId(00);
           node.setName("父节点11");
           node.setChildren(this.getChild(3, "aa"));
          
           list.add(node);
          
           DeptNode node2= new DeptNode();
           node2.setId(11);
           node2.setName("父节点22");
           node2.setChildren(this.getChild(5, "bb"));
          
           list.add(node2);
          
           return list;
        }
       
        private List<DeptNode> getChild(int count,String name){
           List<DeptNode> list = new ArrayList<DeptNode>();
           for(int i = 0; i < count; i++){
               DeptNode node3 = new DeptNode();
               node3.setId(i);
               node3.setName(name+""+i);
               list.add(node3);
           }
           return list;
        }
     
        }
    }
     
    8 在spring中注入
    <bean id="flowServer" class="com.svse.server.impl.FlowServer"/>
    注:此处的Id,就是在flex-application-config.xml中的
    <flex:remoting-destination ref="flowServer"/>配置的ref值
     
     
    9 编写flex代码
     
    <?xml version="1.0" encoding="utf-8"?>
    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init()">
        <mx:Script>
           <![CDATA[
               import mx.rpc.remoting.mxml.RemoteObject;
               import bean.FileAction;
               import mx.collections.ArrayCollection;
               import mx.rpc.events.FaultEvent;
               import mx.rpc.events.ResultEvent;
               import mx.controls.Alert;
               /**
                * 从服务器请示数据
                * */
               function loadDept():void{
                  var remote:RemoteObject = new RemoteObject();
                  remote.destination="flowServer";
                  remote.endpoint="/ssh2-flex/messagebroker/amf";     
                  remote.getDeparts(1);
                  remote.addEventListener(ResultEvent.RESULT,resultHander1);
                  remote.addEventListener(FaultEvent.FAULT,fault);
               }
               /**
                * 请示成功后,调用的方法
                * */
               function resultHander1(event:ResultEvent):void{
                  //在此只用转化为集合对象,不用考虑集合对象中的对象
                  var list:ArrayCollection = event.result as ArrayCollection;
                  this.deptList.dataProvider = list;
               }
               /**
                * 初 始化
                * */
               function init():void{
                  var xmlArray:ArrayCollection = new ArrayCollection([
                         {"name":"上海","selected":false,"children":[{"name":"黄浦","selected":false},
                                                          {"name":"浦东","selected":false}]},
                         {"name":"北京1","selected":false,"children":null}
                      ]);
                  //Tree对象默认会取chilren为子节点
              
                  deptList.dataProvider = xmlArray;
               }
              
               /**
                * 出错后调用的方法
                * */
               function fault(event:FaultEvent):void{
                  Alert.show("error");
               }
               /**
                * 双击调用的方法
                * */
               function showMsg():void{
                  var st:String = deptList.selectedItem.id +" "+deptList.selectedItem.name;
                  Alert.show(st);
               }
           ]]>
        </mx:Script>
        <mx:Label />
        <mx:HBox>
           <mx:Button  label="加载数据" click="loadDept()" fontSize="14" />
           <mx:Tree id="deptList" labelField="name" width="200" height="300" itemDoubleClick="showMsg()" />
        </mx:HBox>
    </mx:Application>
    注:Java类加也可返回xml格的数据,供flex调用,具体请查看相关文档
  • 相关阅读:
    Jekins与sonarqube集成
    小程序checkbox调整大小(checkbox样式修改)
    小程序拿checkbox的checked属性
    微信小程序animation动画2种方法
    关于xshell中的异常----进程被占用
    xshell应用
    微信公众平台教程
    事件类型和事件对象
    小程序开发指南
    WXSS样式语言
  • 原文地址:https://www.cnblogs.com/yaowen/p/4176759.html
Copyright © 2011-2022 走看看