有很多方法可以做到這一點。一種是使用MarshallingView和XStreamMarshaller
以下罈子首先添加到您的類路徑(Maven依賴):
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-oxm</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<dependency>
<groupId>com.thoughtworks.xstream</groupId>
<artifactId>xstream</artifactId>
<version>1.4.4</version>
</dependency>
然後在你的Spring XML配置
<bean id="xstreamMarshaller" class="org.springframework.oxm.xstream.XStreamMarshaller"/>
配置編組器假設你有以下你想要統帥的bean(即:顯示爲XML)
public class MyMessage {
private String message;
// getters & setters
}
在你的控制器類注射org.springframework.oxm.Marshaller,有你的處理方法返回一個像這樣的MarshallingView:
@Controller
public class MyController {
@Autowired private Marshaller marshaller;
@RequestMapping("/helloxml")
public MarshallingView helloxml(Model model) {
MyMessage msg = new MyMessage();
msg.setMessage("hello world");
model.addAttribute("msg", msg);
MarshallingView marshallingView = new MarshallingView(marshaller);
marshallingView.setModelKey("msg"); // set what model attribute to display as xml
return marshallingView;
}
}
上面的設置會給你這樣的XML當請求/helloxml
<com.gerrydevstory.xmlview.MyMessage>
<message>hello world</message>
</com.gerrydevstory.xmlview.MyMessage>
當然,如果您處理許多XML編組,那麼這不是一個很好的設置。在這種情況下,您應該利用視圖解析器配置。
而且XML元素的名稱可得別名縮短。查看XStream文檔
最後,請記住,XStream只是Spring支持的許多編碼器之一,也可以考慮JAXB,Castor,Jibx等。