当我使用FlashBuilder使用BlazeDS连接到远程Java对象时,FlashBuilder会自动创建一个与远程服务器中的对象匹配的本地valueObject。
但是,远程对象的包名在转换时会丢失。
因此,如果我有两个远程Java对象com.foo.A和com.bar.A,我将无法在Flex中区分它们。所以我最终不得不命名我的远程类com.foo.AFoo,com.bar.ABar。
有更好的方法吗?
答案 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
虽然田野的命名和类中的属性很重要,实际的类映射是使用元数据显式指定的。