Java 如何在XML中传递@RequestBody对象列表
我有一个带有PostMapping的rest应用程序:Java 如何在XML中传递@RequestBody对象列表,java,xml,spring,spring-boot,jaxb,Java,Xml,Spring,Spring Boot,Jaxb,我有一个带有PostMapping的rest应用程序: public List<Job> jobs = new ArrayList<Job>() @PostMapping public JobList handleXMLPostRequest (@Valid @RequestBody JobList newJobs) { for(Job joba : newJobs.getJobList()) jobs.add(joba);
public List<Job> jobs = new ArrayList<Job>()
@PostMapping
public JobList handleXMLPostRequest (@Valid @RequestBody JobList newJobs)
{
for(Job joba : newJobs.getJobList())
jobs.add(joba);
for (Job joba : jobs)
System.out.println(joba.toString());
System.out.println("\n");
return newJobs;
}
对象作业列表:
@XmlRootElement(name = "jobs")
@XmlAccessorType(XmlAccessType.PROPERTY)
public class JobList {
public ArrayList<Job> jobList = new ArrayList<>();
//getter setter
}
@XmlRootElement(name=“jobs”)
@XmlAccessorType(XmlAccessType.PROPERTY)
公共类工作清单{
public ArrayList jobList=new ArrayList();
//吸气剂设定器
}
正在尝试发布下一个XML:
<jobs>
<job>
<id>10</id>
<type>print</type>
<user>user1</user>
<device>device1</device>
<amount>10</amount>
</job>
<job>
<id>11</id>
<type>scan</type>
<user>user1</user>
<device>device1</device>
<amount>10</amount>
</job>
</jobs>
10
打印
用户1
设备1
10
11
扫描
用户1
设备1
10
我需要把@XmlRootElement(name = "jobs")
@XmlAccessorType(XmlAccessType.PROPERTY)
public class JobList {
private ArrayList<Job> jobList;
@XmlElement(name="job")
public ArrayList<job> getJobList(){
return jobList;
}
public void setJobList(ArrayList<Job> jobList){
this.jobList = jobList;
}
}
Add@PostMapping(consumes={MediaType.APPLICATION\u XML\u VALUE})仍然返回空列表。另外,当我尝试只传递一个
@XmlRootElement(name = "jobs")
@XmlAccessorType(XmlAccessType.PROPERTY)
public class JobList {
private ArrayList<Job> jobList;
@XmlElement(name="job")
public ArrayList<job> getJobList(){
return jobList;
}
public void setJobList(ArrayList<Job> jobList){
this.jobList = jobList;
}
}
@XmlRootElement
@XmlAccessorType(XmlAccessType.PROPERTY)
public class Job {
private int id;
private String type;
private String user;
private String device;
private int amount;
@XmlElement
public int getId(){
return id;
}
public void setId(int id){
this.id = id;
}
@XmlElement
public String getType(){
return type;
}
public void setType(String type){
this.type = type;
}
@XmlElement
public String getUser(){
return user;
}
public void setUser(String iser){
this.user = user;
}
@XmlElement
public String getDevice(){
return device;
}
public void setDevice(String device){
this.device = device;
}
@XmlElement
public int getAmount(){
return amount;
}
public void setAmount(int amount){
this.amount = amount;
}
}