@Controller和@RestController的区别
為什么80%的碼農都做不了架構師?>>> ??
?
?
?
?
?
?
官方文檔:
@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注解。
總結:@RestController
整個類所有方法不再返回視圖頁面,全部返回方法中定義的返回內容,比如json:
例如:
package com.kbs.platform.controller;import java.util.HashMap; import java.util.Map;import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController;@RequestMapping("/json") @RestController public class JsonController {@RequestMapping("/map")public Map<String, String> getmap(){Map<String, String> map=new HashMap<>();map.put("a", "b");map.put("c", "d");map.put("d", "小家心");return map;}@RequestMapping("/body")public Map<String, String> getmap2(){Map<String, String> map=new HashMap<>();map.put("a", "b");map.put("c", "d");map.put("d", "小家心");return map;}} //實例二 @ResponseBody + @Controller //這個類的方法既可以返回視圖,又可以返回想要的數據package com.kbs.platform.controller;import java.util.HashMap; import java.util.Map;import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping;@RequestMapping("/json") @Controller public class JsonController {//這個方法返回視圖,沒有對應的視圖就會報錯@RequestMapping("/map")public Map<String, String> getmap(){Map<String, String> map=new HashMap<>();map.put("a", "b");map.put("c", "d");map.put("d", "小家心");return map;}//這個方法返回json 不再返回視圖@RequestMapping("/body")public Map<String, String> getmap2(){Map<String, String> map=new HashMap<>();map.put("a", "b");map.put("c", "d");map.put("d", "小家心");return map;}}?
轉載于:https://my.oschina.net/mifans/blog/779156
總結
以上是生活随笔為你收集整理的@Controller和@RestController的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: lr录制脚本,用IETester代替IE
- 下一篇: 【转】爬虫入门一