@Controller和@RestController的區別(在項目學習中遇到的問題,註解加錯無法跳轉到JSP)
文章匯總
??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的結合體,兩個標註合並起來的作用。
示例如下:
- @Controller
- @ResponseBody
- public class MyController { }
- @RestController
-
public class MyRestController { }
@Controller和@RestController的區別(在項目學習中遇到的問題,註解加錯無法跳轉到JSP)