今天用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>
本文解决使用SpringMVC与XStream时,XML响应中字段别名出现额外下划线的问题。提供适用于不同XStream版本的配置示例。
2861

被折叠的 条评论
为什么被折叠?



