Java Jaxb:处理RESTWebService响应中的可选元素

Java Jaxb:处理RESTWebService响应中的可选元素,java,xml,web-services,rest,jaxb,Java,Xml,Web Services,Rest,Jaxb,我有一个对象票证,它有一个与之关联的元素totalNoOfTickets。我在restful服务的许多方法中使用这个对象票证。但是,对于一种方法,我只需要“totalNoOfTickets”元素,而不是其他方法 例如,在我的一个方法中,我说 Ticket.setTotalNoOfTickets(7); 我不会在其他方法中使用totalNoOfTickets。因此,我不在其他方法中设置它 现在在我的票里。java…我有 public class Ticket extends Action

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

例如,在我的一个方法中,我说

Ticket.setTotalNoOfTickets(7);
我不会在其他方法中使用totalNoOfTickets。因此,我不在其他方法中设置它

现在在我的票里。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;
    }
公共舱票
扩展ActionType{
@XmlElementWrapper(name=“票证”)
@XmlElement(name=“票证”)
受保护名单门票;
@XmlElement(name=“TotalNumOfTickets”)
受保护的整数票;
public int getTotalNumofTickets(){
退票;
}
公共无效setTotalNumofTickets(整数totalNumoftokens){
this.totalNumofTickets=totalNumofTickets;
}
在我设置totalNumoftickets的方法响应中,响应包含:

<TotalNumOfTickets>7</TotalNumOfTickets>
7
但是,即使在我不需要totalNumoftickets的回复中,Response也包含

<TotalNumOfTickets>0</TotalNumOfTickets>
0
在Jax-B中有什么方法是它不可能的吗

<TotalNumOfTickets>0</TotalNumOfTickets>
0
在方法的响应中,我没有设置totalNumoftickets?…我可以选择使用该元素吗?

默认情况下,实现不会封送
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;
    }

}
公共舱票
扩展ActionType{
@XmlElementWrapper(name=“票证”)
@XmlElement(name=“票证”)
受保护名单门票;
@XmlElement(name=“TotalNumOfTickets”)
受保护的整数总数;
公共整数getTotalNumofTickets(){
退票;
}
public void setTotalNumofTickets(整数totalNumoftokens){
this.totalNumofTickets=totalNumofTickets;
}
}
了解更多信息


谢谢……这很有效……我应该早点知道……但没关系,至少现在知道了。。。