1. 程式人生 > >@RestController 和 @Controller的區別

@RestController 和 @Controller的區別

@RestController是@ResponseBody + @Controller合體,當你在這個controller中方法只是想返回一個頁面時,就不能用@RestController,因為它會把你的返回值當作資料返回,而不是頁面名字,所以這時候就只能用@Controller。

如:

@RestController public class HomeController {

 @RequestMapping("/")  public String index(Model model){   Msg msg =  new Msg("測試標題","測試內容","額外資訊,只對管理員顯示");   model.addAttribute("msg", msg);   return "home";//home.html  } }

此時並不會返回到home.html頁面,而是直接在當前頁面輸出home字串。

總之一句話,返回頁面用@Controller,要想返回資料就用@RestController,這個註解對於返回資料比較方便,因為它會自動將物件實體轉換為JSON格式。