2011-02-10 7 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)

플래시/플렉스 클라이언트 측에서 id 및 internalId 속성을 가진 클래스가 있습니다. (id 속성은 테스트 용이므로 결국 internalId 값을 반환해야합니다.)

BlazeDS 솔기는 id와 internalId 두 값 모두를 전송합니다. 왜냐하면 둘 다 완전한 getter setter 쌍을 가지고 있기 때문입니다. Blaze가 id를 전송하지 못하도록하려면 internalId 만 전송해야합니다. 하지만 어떻게 구성해야할지 모르겠습니다.

답변

1

과도/마샬 게다가 당신은 외부화 인터페이스를 구현하고 사용자 정의 직렬화를 만들 수 있습니다.

+0

감사합니다. externalizable 인터페이스를 구현하려고 시도했지만 다음 문제가 발생합니다 http://stackoverflow.com/questions/4968457/blazeds-custom-serialization-causes-rangee 실수 – Ralph

3

모든 규칙 현재 위치 :

다음

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

는 견적입니다 : "정적, 일시적 또는 비공개있는 필드뿐만 아니라 비공개 또는 정적 빈 속성, 제외된다. "

그래서 id 속성을 해당 기준에 맞출 수 있다면 제외됩니다. 또 다른 옵션은 id 속성을 포함하지 않는 사용자 정의 serializer를 만드는 것입니다.

모든 최선을,

~ 해리스

0

그것은 어쩌면 조금 오래된 serialization rules를 참조하지만, 약간의 도움이 될 수 : 편안한 티켓에 대한 excluding properties from Java to Flex via BlazeDS

편집이 : 더 나은 soluce, 그것은 @AmfIgnore (또는 @AmfIgnoreField 경우 사용의 당신의 직렬화는 직접 필드에 있습니다.) annotation in spring-flex-core.jar (1.5.2-RELEASE를 사용했습니다)

관련 문제