我有一个 Spring MVC 控制器来生成 XML,它生成常规对象没有任何问题。但是,看起来它不正确支持多态性。我想这可能是配置问题。
这是我的类层次结构。
abstract class Base {
String attr1;
}
class Child1 {
String attrChild1;
}
class Child2 {
String attrChild2;
}
@XmlRootElement
class MyList {
@XmlElement (name="list")
List<Base> lists;
}
然后我将 Child1 的 1 个实例和 Child2 的一个实例添加到列表中。
如果我手动使用 JAXB 来编组它,它将生成一些像这样的 XML
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="child1">
<attr1>...</attr1>
<attrChild1>...</attrChild1>
</list>
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="child2">
<attr1>...</attr1>
<attrChild2>...</attrChild2>
</list>
但是,如果我穿过春天,我只会得到
<list>
<attr1>...</attr1>
</list>
<list>
<attr1>...</attr1>
</list>
有什么建议么?
这是我的控制器类
@RequestMapping(value="/rest/test", method=RequestMethod.GET, produces="application/xml")
public @ResponseBody MyList getMyList() {
MyList myList = ....;
// add instance of Child1/2
return myList;
}