&Applex Studio

Tech. Topics only

flex1.5 学习笔记 1

对于flex 的学习个人觉得主要 在于两个方面,一是 flex 丰富的标记库,能够轻松构造功能丰富的用户界面;另一方面,就是要学习flex 作为web app的表现层怎样和 多层应用中的 其他基层来通信。

flex 调用server JVM中的 javaBean 初步:

背景:
flex 可以通过三种方法来 使用 data service :一是 Web Service, 二是 Remote object service ,三是 http service, web service 只知道个大概,没有部署过,http service 觉得在一般的 三层应用中用的不多,就先研究了一下 Remote object service 。 Remote object service 说白了就是 flex 与 服务器端一般java 对象的交互,这些java对象 可以是 pojo(plain old java object)或者是 javabean 等任何没有被部署为 web service的对象。

标记:
在flex 中要使用remote java object 则通过使用 标记 <mx:RemoteObject .....> 来标识
RemoteObject 可以分为两类,named 和 unnamed , 这两个的区分在标记上的区别就是 <mx:RemoteObject  named = "....">  如果有named(这个是用来告诉flex 调用java 对象是哪个类的) 这个属性则这个RemoteObject是named的 。而如果没有named属性,那么必须要象<mx:RemoteObject  source= "....">一样有source属性(source = Package.ClassName 这个类是在flex 能找到的classpath下的 全限定名 如果在用的是tomcat 的话 这个classpath 就是../WEB-INF/classes 目录)。这两种用法在使用实质上有什么不同还不是很清楚,先不深究,继续往下看。

调用:
flex 与java object的通信就是 调用 java 对象的方法,这就涉及到参数怎么传递的问题了,flex中调用 java 对象的函数 传递参数有两种方法:1。显式 参数传递 就是象平时写java 代码一样把 参数写在函数的 参数列表中,看一个例子:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.macromedia.com/2003/mxml">
   <mx:Panel>
    <mx:Label text="Msg: " />
    <mx:TextInput text="" id="msg" />
    <mx:Button label="Ok" click="data.setMsg(msg.text) "/>
  </mx:Panel>
 <mx:RemoteObject id="data" source="dataSourceExample"> </mx:RemoteObject>
</mx:Application>
当然 dataSourceExample 这个类的定义是:
public class dataSourceExample
{
 private String msg;
 public void setMsg(String msg)
 {
  this.msg = msg;
  show();
 }
 public String getMsg()
 {
  return msg;
 }

public  void show()
 {
  System.out.println(msg);
 }
}

最后一步:
这样flex 和java 类都写好了,就是运行了,但是还有一点要配置以下,就是要对../WEB-INF/flex目录下的flex-config.xml配置一下
<remote-objects>
       ........
       <whitelist>
            <!-- whitelist config for unnamed objects -->
            <unnamed>
                <source>samples.*</source>
                <source>samples</source>
               <source>*</source>
                <!--
                Uncomment the source element below to enable access to all classes
                during development.

                We strongly recommend not allowing access to all source files
                in production, since this exposes Java and Flex system classes.
                <source>*</source>
                -->
            </unnamed>

            <!-- whitelist config for named objects -->
            <named>
                <object name="SampleEmployeeRO">
                    <source>samples.explorer.EmployeeManager</source>
                    <type>stateful-class</type>
                    <allow-unnamed-access>true</allow-unnamed-access>
                </object>
            </named>
        </whitelist>
    </remote-objects>

刚刚说了 这个RemoteObject 中没有named属性, 那么这个是 unnamed 的RemoteObject  所以要在 remote-objects 下的whitelist 下的 unnamed 下 加一个<source>*</source> 以使classes 下的所有的class都能被访问。

运行:
在输入框中 输入后点击OK 后能在tomcat 终端看到传来的msg 被输出了。

另外一种传参方法:
除了以上显式传参,还可以用参数邦定的方法(argument binding): 在上面的 mxml代码的RemoteObject标记要改成:
<mx:RemoteObject id="data" source="dataSourceExample">
  <mx:method name="setMsg">
   <mx:arguments>
    <arg1>{msg.text}</arg1>
   </mx:arguments>
  </mx:method>
 </mx:RemoteObject>
代码意思显而易见,不多加解释了,在调用方法的地方 button的click事件 改为:click="data.setMsg.send()"
send方法一被调用 参数就被传到setMsg 方法中了

阅读更多
个人分类: 技术点滴
想对作者说点什么? 我来说一句

flex.war(1.5 part2)

2008年04月17日 2.95MB 下载

flex.war(1.5 part1)

2008年04月17日 7.63MB 下载

ssh学习笔记1 ssh学习笔记1

2011年08月03日 5.22MB 下载

ASN[1].1编码学习笔记

2010年09月30日 124KB 下载

java学习笔记11111

2009年05月14日 2.05MB 下载

Eclipse插件开发学习笔记12-14

2011年09月13日 14.28MB 下载

struts2.0学习笔记1

2010年04月05日 3.26MB 下载

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭