2011-07-28 100 views
2

返回一個簡單的XML字符串我有Spring MVC中一個簡單的HTTP POST操作,我也不需要返回一個完整的網頁。相反,我只需要返回XML字符串(例如)如何從一種形式後在Spring MVC

真正

但是,當我exec的我下面的客戶端中的動作越來越404

@RequestMapping(value = "/updateStuffAjaxStyle.do", method = RequestMethod.POST) 
public String updateStuffAjaxStyle(HttpServletRequest request, HttpServletResponse response) { 
    //..do something w/ the inputs ... 

    return "<valid>true</valid>"; 
} 

是否有可能返回一個簡單的XML像這樣的字符串w/out必須定義一噸bean defs?

回答

3

是的,它是。但不是通過返回從方法的字符串,但它寫入HttpServletResponse.getWriter()和改變方法簽名返回void(這樣一來,Spring將知道你會自己處理響應)。

搶servlet響應作家,只需添加java.io.Writer類型的一個額外的參數,以你的方法,而Spring會爲您提供正確的參考。

+0

史詩!謝謝您的幫助! – JimmyBond00007

5

我相信你可以通過與@ResponseBody註解註釋的方法的返回類型,像這樣做:

@RequestMapping(value = "/updateStuffAjaxStyle.do", method = RequestMethod.POST) 
public @ResponseBody String updateStuffAjaxStyle(HttpServletRequest request, 
     HttpServletResponse response) { 
    //..do something w/ the inputs ... 
    return "<valid>true</valid>"; 
} 
+0

如果我想返回SVG XML在''標記來顯示? – theblang

+0

我不明白爲什麼這應該是與上述任何不同。只需使用您想要使用的SVG XML替換上面的字符串即可。 –

+0

我不得不創建一個'HttpHeaders'對象並設置'content type'。參見[這個問題](http://stackoverflow.com/questions/19190243/can-you-set-the-src-attribute-of-an-html-image-tag-to-a-controller-method),我製作。 – theblang