SpringMVC學習八 @ResponseBody註解
阿新 • • 發佈:2018-10-14
etag 屬性設置 是什麽 value style body json字符串 utf mvc
(一)在方法上只有@RequestMapping 時,無論方法返回值是什麽認為需要跳轉,代碼實例如下
@RequestMapping("demo10") public People fun10() { People pl=new People(); pl.setName("張三"); pl.setAge(12); return pl; }
如果不希望跳轉,可以把控制器的返回值設置為void ,或者加上註解@ResponseBody
代碼如下
@RequestMapping("demo10") @ResponseBodypublic People fun10() { People pl=new People(); pl.setName("張三"); pl.setAge(12); return pl; }
(二)@ResponseBody註解的作用
@Responsebody 註解表示該方法的返回的結果直接寫入 HTTP 響應正文(ResponseBody)中,一般在異步獲取數據時使用,通常是在使用 @RequestMapping 後,返回值通常解析為跳轉路徑,加上 @Responsebody 後返回結果不會被解析為跳轉路徑,而是直接寫入HTTP 響應正文中。
(1)如果返回值滿足 key-value 形式(對象或 map),把響應頭的Content-Type屬性設置 application/json;charset=utf-8,並把返回的內容轉換成json字符串格式,把轉換後的內容輸出流的形式響應給客戶端
(2)如果返回值不滿足 key-value,例如返回值為 String,把相應頭的Content-Type設置為 text/html,並把返回值的內容以流的形式直接輸出,但是如果返回內容中有中文,會出現中文亂碼問題,解決辦法就是在@RequestMapping註解中加入produces="text/html;charset=utf-8",produces屬性就是表示響應頭中 Content-Type 取值.
@RequestMapping(value="demo12",produces="text/html;charset=utf-8") @ResponseBody public String demo12() throws IOException{ People p = new People(); p.setAge(12); p.setName("張三"); return "中文"; }
SpringMVC學習八 @ResponseBody註解