Что я делаю, когда хочу вернуть XML-представление объектов, используя spring, так это то, что я определяю MarshallingView, например,
<!-- XML view using a JAXB marshaller -->
<bean id="jaxbView" class="org.springframework.web.servlet.view.xml.MarshallingView">
<constructor-arg>
<bean id="jaxb2Marshaller" class="org.springframework.oxm.jaxb.Jaxb2Marshaller">
<property name="classesToBeBound">
<list>
<value>com.company.AClass</value>
</list>
</property>
</bean>
</constructor-arg>
</bean>
<!-- Resolve views based on string names -->
<bean class="org.springframework.web.servlet.view.BeanNameViewResolver"/>
Обратите внимание, что существует целый мир альтернатив к черту.Следующий шаг -
@RequestMapping("/request")
public ModelAndView sample() {
return new ModelAndView("jaxbView", "data", "data_to_be_turned_into_xml");
}
Или, если вы хотите использовать аннотацию ResponseBody, она будет выглядеть следующим образом:
@RequestMapping("/request")
@ResponseBody
public void sample() {
return "data_to_be_turned_into_xml"
}
Обратите внимание, что для этого необходимо определить HttpMessageConverter ,См. Документацию spring для идеального примера того, как это сделать.