1

我有一个 Object Ticket,它有一个与之关联的元素 totalNoOfTickets。我在我的宁静服务的许多方法中使用这个对象 Ticket。但是,我只需要一种方法的元素“totalNoOfTickets”,而不需要其他方法....

例如,在我的一种方法中,我说...

Ticket.setTotalNoOfTickets(7);

我不在其他方法中使用这个 totalNoOfTickets。因此,我没有在其他方法中设置它。

现在在我的 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>

但是,即使在我不需要totalNumoftickets的回复中,回复也包含

<TotalNumOfTickets>0</TotalNumOfTickets>

Jax-B 有什么办法没有

<TotalNumOfTickets>0</TotalNumOfTickets>

在方法的响应中,我没有设置 totalNumoftickets?...我可以选择使用该元素吗

4

1 回答 1

2

默认情况下,JAXB (JSR-222)实现不会编组null值。当您不想封送它时,您可以将totalNumofTickets字段/属性更改为 an并具有 null 值。Integer

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;
    }

}

了解更多信息

于 2012-09-25T20:39:20.933 回答