FlexJava问题!

FlexJava问题!,java,apache-flex,Java,Apache Flex,我的问题是:我有一个这样的java类 public class DogrusalTekliHareket { public Degiskenler Son; public void Bul() { //.... } } 如果你想用这样的东西 <fx:Script> <![CDATA[ var hesaplama:DogrusalTekliHareke

我的问题是:我有一个这样的java类

     public class DogrusalTekliHareket {


        public Degiskenler Son; 

        public void Bul()
        { 
          //.... 
         }
 }
如果你想用这样的东西

  <fx:Script>
  <![CDATA[

    var hesaplama:DogrusalTekliHareket= new DogrusalTekliHareket();
    hesaplama.Son;

]]>
</fx:Script>


它给出了使用hesaplama.Son的错误。问题是什么?ı如何使用儿子

问题是访问
hesaplama.Son
没有做任何事情,也不是一个有效的表达式

尝试:


BlazeDS要求在反序列化和序列化对象时,通过getter和setter来实现。确保Java类具有实例变量的getter和setter

好的。您应该至少有两个不同且不相关的项目:一个是带有服务器端Java代码的项目(我想应该是WTP Dynamic Web项目),另一个是带有MXML/ActionScript代码的Flex或ActionScript项目。WTP和Flash Builder允许将项目设置配置为在单个WTP/Flex项目中同时包含Flex和Java项目,但无论如何,它们只有公共输出文件夹,但具有不同的项目性质,并使用不同的编译器分别构建

这样一来,Flex和Java代码是不相关的。它们没有通用的Java/ActionScript/MXML/jar/swc依赖项,您不能在Flex部件中使用Java代码,反之亦然

因此,要在服务器(我指的是Java)端使用一些DTO,您应该用Java声明这个DTO。要在客户端拥有一些DTO,您应该在ActionScript中声明它。客户机-服务器交互将通过HTTP使用AMF(在BlazeDS的情况下)序列化执行,这与语言无关。但也可以是独立于语言的XML或JSON

为了简化客户机/服务器同步,您可以使用一些代码生成器,这些代码生成器可以从单个声明生成Java和ActionScript源代码。我的意思是类似(特别是)或(有)。但无论如何,它们生成单独的Java和ActionScript/MXML源代码,可以单独编译(分别使用
javac
mxmlc

希望这有帮助


顺便说一句,很抱歉我对你们的命名标准说了一句话。我想用土耳其语标识会更容易一些(因为我更容易用俄语标识),但所有现代计算机语言都是英语,所有国际社区,例如StackOverflow,都是英语。对你和你代码的潜在支持者来说,让自己习惯使用英语标识符会更好。

我知道我们在我开发的Flex应用程序中一直在做这类事情,但有一件事我注意到我们做了,而你似乎没有做,那就是我们实际上为Java对象创建了自己的ActionScript对象模拟,然后使用ActionScript中的RemoteClass注释通知引擎“this”ActionScript类应用于“that”Java类。此外,您在Java端定义了getter和setter,在Flex/ActionScript端,如果遵循JSP EL转换属性名称的基本相同命名约定,那么它将显示为hesaplama.son


HTH

Java和MXML在您的项目中如何关联?呃,您不能在Flex中实例化Java类。。。它们是两种不同的语言。我不熟悉使用flex大约5到6天:)。我使用FlashBuilde4.5,在这个IDE中创建了一个类项目和一个flex项目。blazeds tomcat somethisg like that它在这一行给出了错误egain like多个标记:-hesaplama-访问未定义的属性子-1更改行,1添加了degiskenlerson:Degiskenler=new Degiskenler();degiskenlerson=hesaplama.getSon();它在这一行给出了类似错误的多个标记:-getSon-1067:将类型为mx.rpc:AsyncToken的值隐式强制到不相关的类型valueObjects:Degiskenler。请确保定义了getter和setter,并且实际变量是私有的。
var hesaplama:DogrusalTekliHareket= new DogrusalTekliHareket();
var hesaplamaSon:Degiskenler  = hesaplama.Son;