如何使用Flash Builder添加命名空间以对象值

时间:2011-07-01 05:59:17

标签: java flex blazeds

当我使用FlashBuilder使用BlazeDS连接到远程Java对象时,FlashBuilder会自动创建一个与远程服务器中的对象匹配的本地valueObject。

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

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

有更好的方法吗?

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分: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

虽然田野的命名和类中的属性很重要,实际的类映射是使用元数据显式指定的。