忍受我......我不知道编码,我试图在现有代码中添加一些东西。代码没有错误,但输出错过了xml声明。
我得到的信息是, 此XML文件似乎没有与之关联的任何样式信息。文档树如下所示。
当前输出
- <List xmlns="">
- <item>
<Project_name>just like that</Project_name>
</item>
...
预期输出
- <?xml version="1.0" encoding="UTF-8"?>
- <item>
<Project_name>just like that</Project_name>
</item>
...
我正在使用Intellij,java。
产生电流输出的行在这里
> @RequestMapping(value = "/testproject",method = RequestMethod.GET produces = MediaType.APPLICATION_XML_VALUE) // to get xml output
我知道这是非常少的信息,但为了保密,我无法添加更多代码
此致
答案 0 :(得分:0)
为了将您的响应编组为XML格式,必须存在相应的模式。通常,这可以在要在xml响应中发送的类中使用JAXB annotation来完成。一个简单的例子如下:
@Controller
public class MyController {
@RequestMapping(path = "/", method = RequestMethod.GET, produces =
MediaType.APPLICATION_XML_VALUE)
public @ResponseBody MyList get(){
MyList list = new MyList(new ArrayList<Integer>(){{
add(2);
add(3);
add(4);
}});
return list;
}
}
@XmlRootElement(name = "MyList")
class MyList{
List<Integer> list;
public MyList() {
}
public MyList(List<Integer> list) {
this.list = list;
}
public List<Integer> getList() {
return list;
}
@XmlElement
public void setList(List<Integer> list) {
this.list = list;
}
}
这将产生以下结果
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<MyList>
<list>2</list>
<list>3</list>
<list>4</list>
</MyList>
您需要将@XmlRootElement
和@XmlElement
注释添加到要以XML格式发送的类中。