一、json
@ResponseBody註解的做用是將controller的方法返回的對象 經過適當的轉換器 轉換爲指定的格式以後,寫入到response對象的body區(響應體中),一般用來返回JSON數據或者是XML。app
數據,須要注意的呢,在使用此註解以後不會再走視圖處理器,而是直接將數據寫入到輸入流中,它的效果等同於經過response對象輸出指定格式的數據。jsp
這裏還要着重強調一下,要經過@ResponseBody 註解 將返回的json字符串放入響應體中,而後在前臺js才能拿到json字符串進行解析,若是不加,響應體中就沒有放入json字符串,前臺天然是拿不到數據的,但願你們別理解錯。編碼
二、 spa
@RequestMapping("/login")
@ResponseBody
public User login(User user){
return user;
}
User字段:userName pwd;
那麼在前臺接收到的數據爲:'{"userName":"xxx","pwd":"xxx"}'code
效果等同於以下代碼:
@RequestMapping("/login")
public void login(User user, HttpServletResponse response){xml
//經過response對象輸出指定格式的數據
response.getWriter.write(JSONObject.fromObject(user).toString());
}
對象
3.coffeescript
註解RequestMapping中produces屬性能夠設置返回數據的類型以及編碼,能夠是json或者xml:ip
@RequestMapping(value="/xxx",produces = {"application/json;charset=UTF-8"}) 或 @RequestMapping(value="/xxx",produces = {"application/xml;charset=UTF-8"})
可是必需要和@ResponseBody
註解一塊兒使用才能夠,不加@ResponseBody
註解至關於按照和返回String同名jsp頁面解析天然就會報錯。若是返過來,不加produces屬性,只有@ResponseBody註解的話也是沒有問題的,