我实现了一个简单的控制器,它使用JAXB和@ResponseBody注释返回转换后的XML对象。
我的问题是我很难配置由mvc:annotation-driven创建的默认转换器,我需要将其配置为渲染我的XML缩进。我知道我可以声明我的视图解析器,但我想继续使用注释驱动。
我已经搜索过并发现我可以通过使用mvc:message-converters来配置mvc:annotation-driven,但是我在查找配置Jaxb2RootElementHttpMessageConverter的良好文档方面遇到了很多麻烦。
答案 0 :(得分:0)
<mvc:annotation-driven>
<mvc:message-converters>
<bean class="org.springframework.http.converter.xml.MarshallingHttpMessageConverter">
<property name="marshaller" ref="jaxb2Marshaller"></property>
<property name="unmarshaller" ref="jaxb2Marshaller"></property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
<bean id="jaxb2Marshaller" class="org.springframework.oxm.jaxb.Jaxb2Marshaller">
<property name="contextPaths">
<list>
<value>put your xml classes path here</value>
</list>
</property>
<property name="marshallerProperties">
<map>
<entry key="jaxb.formatted.output">
<value type="java.lang.Boolean">true</value>
</entry>
<entry key="jaxb.encoding" value="UTF-8" />
</map>
</property>
</bean>