我收到了这个
<header><h1>001</h1><h2>002</h2></header>
我的调度员看起来像这样
<bean id="annotatedMarshaller" class="org.springframework.oxm.xstream.AnnotationXStreamMarshaller">
<property name="annotatedClasses">
<list>
<value>someClasses</value>
<value>someClasses</value>
<value>someClasses</value>
</list>
</property>
</bean>
在这里,我尝试使用XstreamMarshaller中的unmarchal方法并将Object返回给
public static Object deserializeXml(String xml) {
StringReader sr =new StringReader(xml);
StreamSource ss=new StreamSource(sr);
Object o=null;
try {
o = xStreamMarshaller.unmarshal(ss);
} catch (XmlMappingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return o;
}
当我意识到unmarshal方法将给定对象封送到给定的javax.xml.transform.Result而不是简单的String作为XStream中的fromXml方法时,问题出现了。
感谢THIS我想出了如何从字符串中获取结果对象,但不确定是否是最好的方法。
答案 0 :(得分:1)
完全同意春天应该处理所有编组/解组的东西。 您需要的一切是将 XStreamMarshaller 声明为消息转换器之一。 这可以通过 mvc:annotation 部分实现:
<mvc:annotation-driven>
<mvc:message-converters>
<!-- Your XStream converter. -->
</mvc:message-converters>
</mvc:annotation-driven>
或通过 AnnotationMethodHandlerAdapter :
<bean
class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="messageConverters">
<list>
<!-- Your XStream converter. -->
</list>
</property>
</bean>