[英]Spring rest service to return multiple entity classes as xml response using @RestController
我們如何在 spring rest 服務中返回多個實體類作為 XML 響應?
示例:我需要如下響應
<GetEmployeeById>
<Response>
<Status>0</Status>
<Message>Data found</Message>
</Response>
<Data>
<Employee>
<Id> 2 </Id>
<Name> Mani M </Name>
<Job> SOftware Developer </Job>
<Salary> 40000 </Salary>
</Employee>
</Data>
</GetEmployeeById>
在這里,Response 和 Employee 是獨立的實體。 我的代碼收到以下 XML 響應。 這里的問題是,我在響應節點內獲取響應節點,在員工節點內獲取員工節點。
<GetEmployeeById>
<Response>
<Response>
<Status>0</Status>
<Message>Data found</Message>
</Response>
</Response>
<Employee>
<Employee>
<Id>2</Id>
<Name>Mani M</Name>
<Job>SOftware Developer</Job>
<Salary>12000</Salary>
</Employee>
</Employee>
</GetEmployeeById>
以下是 java class 我將兩個實體類結合在一起。
@XmlRootElement (name="GetEmployeesById")
public class GetEmployeesById implements Serializable{
private static final long serialVersionUID = 1L;
private List<Employee> Employee = new ArrayList<Employee>();
private List<Response> Response = new ArrayList<Response>();
public List<Employee> getEmployee() {
return Employee;
}
public void setEmployee(List<Employee> employee) {
Employee = employee;
}
public List<Response> getResponse() {
return Response;
}
public void setResponse(List<Response> Response) {
Response = Response;
}
}
請幫我解決這個問題。
您的問題在於List<CustomResponse>
因為它是一個List
,父</Response>
標記代表 List 而子</Response>
代表List
中的元素
為了實現您想要的有效負載, Response
不能是List
並且必須是CustomResponse
。
至於您的數據節點,您可能想嘗試創建一個新的 class 如下
@XmlRootElement(name = "Data")
public class Data implements Serializable {
private static final long serialVersionUID = 1L;
@XmlElement(name = "Employee")
private List<Employee> employees
}
然后,您可以用GetEmployeesById
class 中的Data
替換List<Employee>
重命名字段和吸氣劑
// private List<Employee> Employee = new ArrayList<Employee>();
private List<Employee> Data = new ArrayList<Employee>();
或將注釋@XmlElement(name="Data")
添加到字段或吸氣劑(不確定)
並更改字段(也是吸氣劑)
// private List<Response> Response = new ArrayList<Response>();
private Response Response = new Response();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.