2011-07-01 93 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。 –

相關問題