@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的区别相关推荐
- @Controller与@RestController的区别以及ircular view path [ad]: would dispatch back to the current handler异常
QUESTION:@Controller与@RestController的区别以及ircular view path [ad]: would dispatch back to the current ...
- java controller注解原理_@Controller、@RestController注解区别详解
@Controller.@RestController注解区别: @RestController 注解相当于 @Controller + @ResponseBody 合在一起的作用. 一.@Contr ...
- Controller和RestController的区别
1. Controller, RestController的共同点 都是用来表示Spring某个类的是否可以接收HTTP请求 2. Controller, RestController的不同点 @C ...
- springmvc 中@Controller和@RestController的区别
1.Controller, RestController的共同点 都是用来表示Spring某个类的是否可以接收HTTP请求 2.Controller, RestController的不同点 @Cont ...
- @Controller和@RestController的区别?
@RestController注解相当于@ResponseBody + @Controller合在一起的作用 1) 如果只是使用@RestController注解Controller,则Control ...
- spring里面 @Controller和@RestController注解的区别
问题:spring里面 @Controller和@RestController注解的区别 spring里面 @Controller和@RestController注解的区别 Web MVC和REST ...
- 《spring-boot学习》-12-@controller和@RestController的区别?
1.概述 @Controller和@RestController的区别? 官方文档: @RestController is a stereotype annotation that combines ...
- Spring MVC和REST中@RestController和@Controller注释之间的区别
Spring MVC中的@RestController注释不过是@Controller和@ResponseBody注释的组合. 它已添加到Spring 4.0中,以简化在Spring框架中RESTfu ...
- Spring中@Controller和@RestController之间的区别
1. Controller, RestController的共同点 都是用来表示Spring某个类的是否可以接收HTTP请求 2. Controller, RestController的不同点 @C ...
最新文章
- 巧用CSS的RevealTrans滤镜
- Spring Boot(三) 将war文件部署到tomcat 、 Thymeleaf示例
- 2020CCPC绵阳
- [转载] 手工制作Win7 OEM版
- 孤独的周鸿祎,落寞的 360
- Delay-Doppler equalization(8)(时延多普勒均衡)⭐
- 设计模式详解——模版方法模式
- 网易云音乐 For Mac
- 独立站客服如何友好推送折扣券
- 近年热门细胞研究话题颂通大盘点
- mysql relaylog清理_mysql 清除relay-log文件方法详解
- 6python项目 体脂率计算优化2
- 如何判断网站被黑?网站被黑如何应对?如何防止网站被黑?
- 小码哥C++_汇编指令
- 伸展树(一) - 概念和C实现
- 求10个数中的最大值及其对应的下标
- 计算机教育学研究方法,广西师大 教育学 孙杰远《教育研究方法》知识点笔记1.pdf...
- 《金融学从入门到精通》读书摘记
- 一劳永逸让windows 64位操作系统 禁止强制驱动签名
- zabbix的搭建和简单使用