在什么情況下使用@ResponseBody 注解?


 1 @Controller
 2 @RequestMapping("/")
 3 public class HelloController {
 4    @RequestMapping(value = "/helloWorld", method = RequestMethod.GET)
 5    @ResponseBody
 6    public String helloWorld()  {
 7       return"Hello World";
 8    }
 9  }
10 
11 運行以上代碼,在瀏覽器地址欄輸入: http://localhost:8080/helloWorld
12 運行結果,頁面上輸出 Hello World

如果不加@responseBody注解,運行結果會怎樣?

 

結果表明:如果在一個方法上使用了@RequestMapping注解,這時候,方法的返回值通常解析為跳轉的路徑, 也就是說,要跳轉到指定的jsp頁面。在這個代碼實例中,要跳轉到的是 Hello World.jsp 頁面。 因為工程中尚未添加這個jsp文件,所以報出了 404 錯誤 (The requested resource is not available)。 
如果添加了 @ResponseBody 這個注解, 則表明該方法的返回值直接寫入到 HTTP Response Body 中。  這就是說,如果返回的是JSON, 就得必須添加 @ResponseBody 這個注解
一般在異步獲取數據時使用,在使用@RequestMapping后,返回值通常解析為跳轉路徑,加上@responsebody后返回結果不會被解析為跳轉路徑,而是直接寫入HTTP response body中。比如異步獲取json數據,加上@responsebody后,會直接返回json數據。


 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM