Просто возврат пустого списка из getUsers()
дает желаемый результат.
@JacksonXmlRootElement(localName = "response")
public class Response {
@JacksonXmlElementWrapper(localName = "users")
@JacksonXmlProperty(localName = "user")
private List<User> users;
public List<User> getUsers() {
if(null == users) {
return Collections.emptyList();
}
return users;
}
public void setUsers(List<User> users) {
this.users = users;
}
}
Основной метод
ObjectMapper mapper = new XmlMapper();
Response response = new Response();
String s = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(response);
System.out.println(s);
response.setUsers(Arrays.asList(new User("1", "Hemant")));
s = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(response);
System.out.println(s);
Выход
<response>
<users/>
</response>
<response>
<users>
<user>
<id>1</id>
<name>Hemant</name>
</user>
</users>
</response>
Еще одна вещь, когда getUsers()
не меняется
public List<User> getUsers() {
/*if(null == users) {
return Collections.emptyList();
}*/
return users;
}
Вывод
<response/>