2011-07-01 46 views
0

当我使用FlashBuilder使用BlazeDS连接到远程Java对象时,FlashBuilder会自动创建与远程服务器中的对象匹配的本地valueObject。如何使用FlashBuilder将名称空间添加到valueObjects

但是,远程对象的包名在翻译时会丢失。

因此,如果我有两个远程Java对象com.foo.A和com.bar.A,我将无法在Flex中区分它们。所以我最终不得不命名我的远程类com.foo.AFoo,com.bar.ABar。

有没有更好的方法?

回答

0

我不明白为什么你不能在flex端和java端使用com.foo.A。就个人而言,我认为Flex项目结构与Java截然不同(例如,Java喜欢使用DTO命名,而Flex使用Model),这就是为什么我使用RemoteClass metadata将Java DTO绑定到Flex模型的原因。

+0

谢谢J_A_X。这是比我想要的更低级别的答案。我正在使用Flashbuilder,它会自动创建绑定到Java DTO的Flex对象。所以我的问题是如何让Flashbuilder创建与DTO命名空间相匹配的命名空间。在Flashbuilder生成的代码中,我可以看到它使用'flash.net.registerClassAlias'将对象映射到Java DTO命名空间。我只需要找到一种在Flex项目模型中设置名称空间的好方法,这样我就可以有多个名为'A'的Flex类。 –

0

Flex类的名称并不重要,在向/从BlazeDS发送/接收类时将被忽略。

重要的是在您的Flex类的[RemoteClass]元数据中指定的名称。

如:

// Actionscript class Apple.as 
package com.mangofactory.sample 
{ 
    [RemoteClass(alias="org.orchard.Orange")] 
    public class Apple { 
     ... etc .... 

这里,ActionScript类com.mangofactory.sample.Apple映射到Java类org.orchard.Orange

虽然字段类内&性质的命名为重要,实际的类映射是使用元数据明确指定的。

+0

谢谢马蒂 - 这很有帮助。根据之前的评论,我正在寻找如何驱动Flashbuilder以允许不同的Flex对象A映射到不同的Java DTO。 –

相关问题