gpt4 book ai didi

java - 如何在JAXB中添加多个值?

转载 作者:行者123 更新时间:2023-12-02 07:11:22 24 4
gpt4 key购买 nike

 import javax.xml.bind.annotation.XmlElement;

public class Test1 {
private String Type;
private String value;
@XmlElement(name="type")
public final String getType(){
return Type;
}
public final void setType(final String type){
this.Type=type;
}
@XmlElement(name="value")
public final String getValue(){
return value;
}
public final void setValue(final String value) {
this.value = value;
}
}
import java.util.ArrayList;

import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementWrapper;
import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement(name="test")
public class Test2 {
ArrayList<Test1> test1;
@XmlElementWrapper(name="users")
@XmlElement(name="user")
public final ArrayList<Test1> getUser(){

return test1;
}
public final void setUser(final ArrayList<Test1> mm){
this.test1=mm;
}
}
import java.util.ArrayList;

import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;

import com.covidien.laptopagent.xml.XMLUserLogin;



public class TEST {

public static void main(String agrs[]){
Test1 test1=new Test1();
test1.setType("100");
test1.setValue("none");
test1.setType("101");
test1.setValue("ok");
ArrayList<Test1> permfile=new ArrayList<Test1>();
permfile.add(test1);


ArrayList<Test2>test2 =new ArrayList<Test2>();
Test2 test2obj=new Test2();
test2obj.setuser(permfile);




JAXBContext context;
try {
context = JAXBContext.newInstance(XMLUserLogin.class);
Marshaller m = context.createMarshaller();
m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
m.marshal(test2, System.out);
System.out.println();
} catch (JAXBException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

}

异常输出:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<test>
......
<users>
<user>
<type>100</type>
<value>none</value>
</user>
<user>
<type>101</type>
<value>ok</value>
</user>
</users>
...............
...............
</test>

但它只返回 user 的一个值:

   <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<test>
......
<users>
<user>
<type>100</type>
<value>none</value>
</user>
</users>
...............
...............
</test>

如何解决这个问题?有人可以帮助我我做错了什么吗?

谢谢

最佳答案

像这样修复代码

    Test1 user1=new Test1();
user1.setType("100");
user1.setValue("none");

Test1 user2=new Test1();
user2.setType("101");
user2.setValue("ok");

ArrayList<Test1> permfile=new ArrayList<Test1>();
permfile.add(user1);
permfile.add(user2);

关于java - 如何在JAXB中添加多个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15469651/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com