Spring MVC ResponseBody

上一節小博老師跟你們一塊兒學習了RequestBody註解的適用狀況,瞭解了在什麼狀況下使用以及如何使用RequestBody註解。這一節小博老師繼續給你們講解Controller方法上的另外一個註解ResponseBody。html

@ResponseBody註解用於Controller方法的返回對象上,經過適當的HttpMessageConverter把返回對象轉換爲指定格式,而後寫入到Response對象的body數據區,返回給客戶端。json

適用場景app

適用於返回數據是json、xml等格式。若是是html頁面(或者html標籤),則不適合使用ResponseBody註解。學習

工做原理code

1. 解析根據Request對象header部分的Accept屬性,獲取屬性內的類型(以「,」隔開)xml

2. 根據按accept中的全部類型,遍歷全部的HttpMessageConverterhtm

3. 找到匹配的HttpMessageConverter後,調用相應方法處理返回對象對象

替代方案blog

若是返回的不是對象,而是json字符串,則不須要使用ResponseBody註解,能夠直接輸出到body區域,如:ip

response.setContentType("application/json; charset=UTF-8");

response.getWriter().print(「{\」name\」:\」boweifeng\」}」);

實例

@RequestMapping(value = "/bwf/login", method = RequestMethod.POST)  

    public  @ResponseBody Person login(@RequestBody Boweifeng bwf){

return bwf;  

}

其中Boweifeng是一個POJO類。

附錄:默認的HttpMessageConverter協議轉換器

相關文章
相關標籤/搜索