Spring中的ResponseBody註解的作用

1.作用範圍

@ResponseBody主要使用在控制層(controller)的方法上,作用在方法和類上

2.返回格式

根據返回數據格式返回給客戶端,沒有寫ResponseBody底層將方法封裝爲ModelAndView對象返回。

如果返回值是字符串,那麼直接將字符串寫到客戶端;如果是一個對象,會將對象轉化爲json串,然後寫到客戶端。

3、注意編碼
        如果返回對象,按utf-8編碼。如果返回String,默認按iso8859-1編碼,頁面可能出現亂碼。因此在註解修改編碼格式,例如@RequestMapping(value="/inset.action",produces="text/html;charset=utf-8"),前面是請求的路徑,後面是編碼格式。

4、原理
        控制層方法的返回值是如何轉化爲json格式的字符串的?其實是通過HttpMessageConverter中的方法實現的,它本是一個接口,在其實現類完成轉換。如果是bean對象,會調用對象的getXXX()方法獲取屬性值並且以鍵值對的形式進行封裝,進而轉化爲json串。如果是map集合,採用get(key)方式獲取value值,然後進行封裝。
 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章