今天用Spring mvc XStream 返回xml数据,发现给返回的pojo对象修改别名(改成有别名中有"_")的问题:
返回的POJO对象:
返回到前端的XML数据:
按道理graphicId应该是以grapic_id作为名称,但是实际返回的是grapic__id两个下划线,以下是解决方法:
1、1.4及以后
<bean id="marshaller" class="org.springframework.oxm.xstream.AnnotationXStreamMarshaller">
<property name="streamDriver">
<bean class="com.thoughtworks.xstream.io.xml.StaxDriver">
<constructor-arg>
<bean class="com.thoughtworks.xstream.io.naming.NoNameCoder()">
</bean>
</constructor-arg>
</bean>
</property>
</bean>
2、1.4之前
<bean id="marshaller" class="org.springframework.oxm.xstream.AnnotationXStreamMarshaller">
<property name="streamDriver">
<bean class="com.thoughtworks.xstream.io.xml.XppDriver">
<constructor-arg>
<bean class="com.thoughtworks.xstream.io.xml.XmlFriendlyReplacer">
<constructor-arg index="0" value="_-"/>
<constructor-arg index="1" value="_"/>
</bean>
</constructor-arg>
</bean>
</property>
</bean>