@responsebody的做用以及produce配置

一、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註解的話也是沒有問題的,

相關文章
相關標籤/搜索