2012-08-08 5 views
1

내가 속성으로 긴 문자열을 얻고 나는 그것의 일부를 비 정렬 화하려는의 일부를 설정합니다.JAXB : 비 정렬 화 및 속성 값

<Party id="PARTYID_1341592540748_ed044bd3-b8b2-40f9-a679-4daa411ecc45"> 

하지만 난 그냥 1341592540748이 ID로 설정하려면 :
다음은 요소가 어떻게 생겼는지입니다.
@XmlAttribute 문자열을 즉시 편집 할 수 있습니까?

답변

1

나는이 논리를 포함 할 XmlAdapter의 인스턴스를 구현하는 것이 좋습니다. 이 방법의 장점은 XML 변환 논리가 도메인 모델과 별도로 유지된다는 것입니다. XmlAdapter@XmlJavaTypeAdapter 주석을 사용하여 필드/속성에 설정됩니다. 추가 정보

1

한 가지 방법은 세터 방법의 변환을 할 수 있습니다, 이런 일이 (테스트하지) :

@XmlRootElement 
@XmlAccessorType(XmlAccessType.FIELD) 
public class Party { 

    @XmlTransient long id; 

    // traditional JavaBean accessors for the long, _not_ used by JAXB 
    public long getId() { return id; } 
    public void setId(long id) { this.id = id; } 

    // converting accessors for JAXB 
    @XmlAttribute(name = "id") 
    public String getStringId() { return String.valueOf(id); } 
    public void setStringId(String idStr) { 
    // extract relevant bit of the string and parse it into a long 
    } 
} 
관련 문제