2017-07-26 110 views
2

我需要有针对“My_Tag_Name” XML标签的默认值(correcponding Java字段是双人间):JAXB默认值不工作

@XmlElement(required = true, name = "My_Tag_Name", defaultValue = "myDefaultTagValue") 
public Double myTagName; 

还有一个beforeMarshaller()方法,它不影响 “My_Tag_Name”:

private void beforeMarshal(Marshaller marshaller) { 
... 
} 

为什么设置的默认值的唯一途径是beforeMarshaller()方法?是否有可能在@XmlElement参数中做到这一点?

回答

1

您必须执行Marshaller.Listener类。因此您必须实施beforeMarshal(Object source)afterMarshal(Object source)方法。这就是没有在beforeMarshal(Object source)中操纵的字段被跳过的原因