2012-09-25 22 views
1

我有一個Object Ticket,它有一個與它關聯的元素totalNoOfTickets。我在我寧靜的服務的許多方法中使用這個對象Ticket。但是,我只需要一個方法,而不是別人的元素「totalNoOfTickets」 ....Jaxb:處理其餘webservice響應中的可選元素

例如,在我的方法之一,我說...

Ticket.setTotalNoOfTickets(7); 

我不使用這個總共沒有其他的方法。因此,我不會用其他方法來設定它。

現在在我的Ticket.java ...我有

public class Ticket 
    extends ActionType { 

    @XmlElementWrapper(name = "Tickets") 
    @XmlElement(name = "Ticket") 
    protected List<Ticket> tickets; 

    @XmlElement(name = "TotalNumOfTickets") 
    protected int totalNumofTickets; 

    public int getTotalNumofTickets() { 
     return totalNumofTickets; 
    } 

    public void setTotalNumofTickets(int totalNumoftokens) { 
     this.totalNumofTickets = totalNumoftickets; 
    } 

在方法的反應,我在那裏設置totalNumoftickets,響應包含:

<TotalNumOfTickets>7</TotalNumOfTickets> 

但是,即使是在響應,其中i不需要totalNumoftickets,反應包含

<TotalNumOfTickets>0</TotalNumOfTickets> 

Jax-B中有沒有什麼辦法可以避免h AVE

<TotalNumOfTickets>0</TotalNumOfTickets> 

中的方法,在這裏我就不設置totalNumoftickets反應?...我可以使用該元素可選

回答

2

缺省情況下JAXB (JSR-222)實現不會元帥null值。您可以將totalNumofTickets字段/屬性更改爲Integer,並在您不想編組時將其值設爲null。

public class Ticket 
    extends ActionType { 

    @XmlElementWrapper(name = "Tickets") 
    @XmlElement(name = "Ticket") 
    protected List<Ticket> tickets; 

    @XmlElement(name = "TotalNumOfTickets") 
    protected Integer totalNumofTickets; 

    public Integer getTotalNumofTickets() { 
     return totalNumofTickets; 
    } 

    public void setTotalNumofTickets(Integer totalNumoftokens) { 
     this.totalNumofTickets = totalNumoftickets; 
    } 

} 

更多信息

+1

感謝...這工作...我應該知道這早些時候......不過沒關係,至少現在知道了... – Npa