1. 程式人生 > >@Controller和@RestController的區別(在項目學習中遇到的問題,註解加錯無法跳轉到JSP)

@Controller和@RestController的區別(在項目學習中遇到的問題,註解加錯無法跳轉到JSP)

ann 指定 gin mar edi 兩個 urn 返回json more

文章匯總

??1、

官方文檔:
@RestController is a stereotype annotation that combines @ResponseBody and @Controller.
意思是:
@RestController註解相當於@ResponseBody + @Controller合在一起的作用。

1)如果只是使用@RestController註解Controller,則Controller中的方法無法返回jsp頁面,配置的視圖解析器InternalResourceViewResolver不起作用,返回的內容就是Return 裏的內容。

例如:本來應該到success.jsp頁面的,則其顯示success.


2)如果需要返回到指定頁面,則需要用 @Controller配合視圖解析器InternalResourceViewResolver才行。
3)如果需要返回JSON,XML或自定義mediaType內容到頁面,則需要在對應的方法上加上@ResponseBody註解。

??2、

1. Controller, RestController的共同點

都是用來表示Spring某個類的是否可以接收HTTP請求

2. Controller, RestController的不同點

@Controller標識一個Spring類是Spring MVC controller處理器

@RestController: a convenience annotation that does nothing more than adding the@Controller and @ResponseBody annotations。 @RestController是@Controller和@ResponseBody的結合體,兩個標註合並起來的作用。

示例如下:

    1. @Controller
    2. @ResponseBody
    3. public class MyController { }
    4. @RestController
    5. public class MyRestController { }

@Controller和@RestController的區別(在項目學習中遇到的問題,註解加錯無法跳轉到JSP)