1
我得到一個長字符串作爲屬性,並且我想對它的一部分進行解組。
這裏是元素的樣子:JAXB:解組並設置屬性值的一部分
<Party id="PARTYID_1341592540748_ed044bd3-b8b2-40f9-a679-4daa411ecc45">
但我只想1341592540748
被設置爲ID。
是否可以在飛行中編輯@XmlAttribute字符串?
我得到一個長字符串作爲屬性,並且我想對它的一部分進行解組。
這裏是元素的樣子:JAXB:解組並設置屬性值的一部分
<Party id="PARTYID_1341592540748_ed044bd3-b8b2-40f9-a679-4daa411ecc45">
但我只想1341592540748
被設置爲ID。
是否可以在飛行中編輯@XmlAttribute字符串?
我會建議實施的XmlAdapter
實例包含這個邏輯。這種方法的優點是XML轉換邏輯與您的域模型保持分離。使用@XmlJavaTypeAdapter
註釋在字段/屬性上設置XmlAdapter
。
更多信息
一種方法可能是在做setter方法的轉換,這樣的事情(未測試):
@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
}
}