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數據。