當我使用FlashBuilder使用BlazeDS連接到遠程Java對象時,FlashBuilder會自動創建與遠程服務器中的對象匹配的本地valueObject。如何使用FlashBuilder將名稱空間添加到valueObjects
但是,遠程對象的包名在翻譯時會丟失。
因此,如果我有兩個遠程Java對象com.foo.A和com.bar.A,我將無法在Flex中區分它們。所以我最終不得不命名我的遠程類com.foo.AFoo,com.bar.ABar。
有沒有更好的方法?
當我使用FlashBuilder使用BlazeDS連接到遠程Java對象時,FlashBuilder會自動創建與遠程服務器中的對象匹配的本地valueObject。如何使用FlashBuilder將名稱空間添加到valueObjects
但是,遠程對象的包名在翻譯時會丟失。
因此,如果我有兩個遠程Java對象com.foo.A和com.bar.A,我將無法在Flex中區分它們。所以我最終不得不命名我的遠程類com.foo.AFoo,com.bar.ABar。
有沒有更好的方法?
我不明白爲什麼你不能在flex端和java端使用com.foo.A。就個人而言,我認爲Flex項目結構與Java截然不同(例如,Java喜歡使用DTO命名,而Flex使用Model),這就是爲什麼我使用RemoteClass metadata將Java DTO綁定到Flex模型的原因。
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
雖然字段類內&性質的命名爲重要,實際的類映射是使用元數據明確指定的。
謝謝馬蒂 - 這很有幫助。根據之前的評論,我正在尋找如何驅動Flashbuilder以允許不同的Flex對象A映射到不同的Java DTO。 –
謝謝J_A_X。這是比我想要的更低級別的答案。我正在使用Flashbuilder,它會自動創建綁定到Java DTO的Flex對象。所以我的問題是如何讓Flashbuilder創建與DTO命名空間相匹配的命名空間。在Flashbuilder生成的代碼中,我可以看到它使用'flash.net.registerClassAlias'將對象映射到Java DTO命名空間。我只需要找到一種在Flex項目模型中設置名稱空間的好方法,這樣我就可以有多個名爲'A'的Flex類。 –