2011-02-10 140 views
4

我有其中有一個字段的getter和setter,以及第二對getter和setter的是,在另一種方式進入該領域的Java類:如何讓BlazeDS忽略屬性?

public class NullAbleId { 
    private static final int NULL_ID = -1; 
    private int internalId; 

    getter & setter for internalId 

    public Integer getId() { 
    if(this.internalId == NULL_ID) { 
     return null;  
    } else { 
     return Integer.valueOf(internalId); 
    } 
    } 

    public void setId(Integer id) { 
     if (id == null) { 
     this.internalId = NULL_ID; 
     } else { 
     this.internalId = id.intValue(); 
     } 
    } 

} 

(對於這種結構的原因是,我想建立way to hande Nullable Intergers

對Flash/Flex的客戶端,我有兩個屬性的類:ID和internalId(標識屬性僅用於測試,到了最後,他們應該返回internalId值)

BlazeDS接縫傳遞兩個值:id和internalId,因爲兩者都有一個co完整的getter setter對。 我希望Blaze不要傳輸id,只有internalId應該傳輸。但我不知道如何配置它。

回答

1

除了瞬時/編組可以實現Externalizable接口,並創建自定義序列化。

serialization rules

+0

謝謝:我試圖實現可外部化的接口,但這會導致下一個問題:http://stackoverflow.com/questions/4968457/blazeds-custom-serialization-causes-rangee RROR – Ralph 2011-02-11 11:29:41

3

所有BlazeDS的序列化的規則在這裏:

http://livedocs.adobe.com/blazeds/1/blazeds_devguide/help.html?content=serialize_data_3.html

這裏引用:「那是靜態的,短暫的,或者非公共字段,以及與這些非公共或靜態bean屬性,被排除在外。」

所以,如果你可以讓你的id屬性符合這個標準,它將被排除在外。另一種選擇是創建一個明顯不包含你的id屬性的自定義序列化程序。

一切順利,

〜哈里斯

0

這也許有點老了,但它可以幫助一些:有一個很好的車票約excluding properties from Java to Flex via BlazeDS

編輯:更好的soluce,它的@AmfIgnore(或如果使用您的序列化直接在字段中)註釋存在於spring-flex-core.jar(我使用了1.5.2-RELEASE)