1

我得到一个长字符串作为属性,我想解组它的一部分。
这是元素的样子:

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

但我只想1341592540748被设置为 id。
是否可以即时编辑@XmlAttribute 字符串?

4

2 回答 2

1

我建议实现一个实例XmlAdapter来包含这个逻辑。这种方法的优点是 XML 转换逻辑与您的域模型分开。使用注释XmlAdapter在字段/属性上设置An 。@XmlJavaTypeAdapter

了解更多信息

于 2012-08-08T16:33:13.530 回答
1

一种方法可能是在 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
  }
}
于 2012-08-08T13:47:58.220 回答