我有一个对象票证,它有一个与其关联的元素totalNoOfTickets。我在 Restful 服务的许多方法中使用了这个对象 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?...我可以选择使用该元素
最佳答案
默认情况下 JAXB (JSR-222)实现不会编码(marshal) null
值。您可以将 totalNumofTickets
字段/属性更改为 Integer
并在您不想编码(marshal)它时将其值设置为 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;
}
}
了解更多信息
关于java - Jaxb:处理剩余 Web 服务响应中的可选元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12590570/