SpringMVC的 @RestController和@Controller 区别
@RestController注解,相当于@Controller+@ResponseBody两个注解的结合,
返回json数据不需要在方法前面加@ResponseBody注解了,但使用@RestController这个注解,就不能返回jsp,html页面,视图解析器无法解析jsp,html页面
@ResponseBody 表示该方法的返回结果直接写入 HTTP response body 中,一般在异步获取数据时使用【也就是AJAX】,
在使用 @RequestMapping后,返回值通常解析为跳转路径,
但是加上 @ResponseBody 后返回结果不会被解析为跳转路径,
而是直接写入 HTTP response body 中。 比如异步获取 json 数据,
加上 @ResponseBody 后,会直接返回 json 数据。
@RequestBody 将 HTTP 请求正文插入方法中,使用适合的 HttpMessageConverter 将请求体写入某个对象。
@Controller
@RequestMapping("falarmUser")
public class FAlarmUserController { private static final Logger logger = LoggerFactory.getLogger(FAlarmUserController.class); @Autowired
private FAlarmUserService fAlarmUserService; /**
* 添加用户
* @param userEntity
* @return
*/
@PostMapping("addUser")
public Object addUser(@RequestBody FAlarmUserEntity userEntity){
logger.info("添加成员的信息 : "+userEntity.toString());
Response res = new Response();
res = fAlarmUserService.addUser(userEntity);
return res;
}
} Response 类: @JsonInclude(value = JsonInclude.Include.NON_EMPTY)
public class Response implements Serializable { private static final long serialVersionUID = 1L; private Integer code; private Object data; private String message; public Response() {
super();
} public Integer getCode() {
return code;
} public void setCode(Integer code) {
this.code = code;
} public Object getData() {
return data;
} public void setData(Object data) {
this.data = data;
} public String getMessage() {
return message;
} public void setMessage(String message) {
this.message = message;
}
}
1、如果是用@RestController ,请求之后返回的结果如下。

2、如果使用 @Controller,返回结果 如下;

@Controller 注解不能将结果写入到 HTTP response body 中,因而无法正常显示。
SpringMVC的 @RestController和@Controller 区别的更多相关文章
- SpringMVC中@RestController和@Controller的区别
		在使用SpringMVC时,对于Controller中的注解@RestController和@Controller需要我们区分清楚 @RestController注解相当于@ResponseBody和 ... 
- @Restcontroller与@controller区别
		@RestController注解相当于@ResponseBody + @Controller合在一起的作用. 1)如果只是使用@RestController注解Controller,则Control ... 
- @RestController和@Controller区别
		1) 如果只是使用@RestController注解Controller,则Controller中的方法无法返回jsp页面,或者html,配置的视图解析器 InternalResourceViewRe ... 
- Spring @RestController、@Controller区别
		一.用@Controller,返回的是页面:@Controller加上@ResponseBody,返回的是JSON.XML或其他文本. @Controller @RequestMapping(&quo ... 
- restcontroller和controller区别
		http://www.cnblogs.com/softidea/p/5884772.html#undefined http://blog.csdn.net/blueheart20/article/de ... 
- RestController 和Controller的区别
		restful风格,restcontroller与controller 初步接触springmvc的时候,被要求使用restful风格,彼时一头雾水,不懂何谓restful,参阅了很多资料,慢慢的接触 ... 
- SpringBoot 中常用注解@Controller/@RestController/@RequestMapping的区别
		SpringBoot中常用注解@Controller/@RestController/@RequestMapping的区别 @Controller 处理http请求 @Controller //@Re ... 
- @restcontroller与@controller的区别
		这段时间偷偷看了下spring boot.结果引用模板时没注意,把@restcontroller替换了@controlle,结果模板出不来.终究原因是spring的知识不到位. 下面说说这2的说明和区 ... 
- 注解@RestController与@Controller的区别
		开发RESTful API 时,一般都会在Controller上加上@Controller注解,但是有时候加上@RestController,当同事问为什么的时候,我也一脸懵逼,默默的看了资料,现在就 ... 
随机推荐
- 20155311 2016-2017-2 《Java程序设计》第8周学习总结
			20155311 2016-2017-2 <Java程序设计>第8周学习总结 教材学习内容总结 通用API: •日志API • 日志: 日志对信息安全意义重大,审计.取证.入侵检测等都会用 ... 
- UVa 1606 Amphiphilic Carbon Molecules (扫描法+极角排序)
			题意:平面上有 n 个点,每个点不是黑的就是白的,现在要放一个隔板,把它们分成两部分,使得一侧的白点数加上另一侧的黑点数最多. 析:这个题很容易想到的就是暴力,不妨假设隔板至少经过两个点,即使不经过也 ... 
- Opencascade、OpenGL和OpenSceneGraph的区别与联系
			OpenGL只是三维显示 Openscenegraph基于场景图的概念,它提供一个在OpenGL之上的面向对象的框架,从而能把开发者从实现和优化底层图形的调用中解脱出来 Opencascade更适合算 ... 
- Codeforces761A  Dasha and Stairs                                                                                            2017-02-05 23:28             114人阅读              评论(0)              收藏
			A. Dasha and Stairs time limit per test 2 seconds memory limit per test 256 megabytes input standard ... 
- 原生JS实现随机点名项目
			核心思想 随机产生规定范围内的整数,然后再产生相同范围内的整数,两者相同时,则暂停. 所用知识 Math.random() * num: 产生从0到num的随机数 Math.floor(): 向下取整 ... 
- solr特点二:Facet
			返回查询集合中指定field的统计情况,例如找到city一样的文档数目: 加入文档 <add> <doc> <field name="id">1 ... 
- 谁说他们版本不兼容——hadoop1.2.1+hbase0.94.11+nutch2.2.1+el
			一.背景 最近由于项目和论文的需要,需要搭建一个垂直搜索的环境,查阅了很多资料,决定使用Apache的一套解决方案hadoop+hbase+nutch+es.这几样神器的作用就不多作介绍了,自行参考各 ... 
- Ubuntu  add-apt-repository: command not found
			在Ubuntu下,时不时会有这个错误的. add-apt-repository: command not found 这个是缺少程序,安装一下就可以了.只是不知道安装的名字. 按以下命令走一趟就可以的 ... 
- 使用Anaconda的python安装虚拟环境是出现错误:python -m venv venvdir----Error: Command '['D:\\Development\\Django\\test\\Scripts\\python.exe', '-Im', 'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit
			在创建python虚拟环境的时候,如果使用的是Anaconda中集成的python -m venv venvdir就会出现不能安装pip的错误,原因是Anaconda没有ensurepip, 解决办法 ... 
- 报错:'utf-8' codec can't decode byte 0xb0 in position 0: invalid start byte
			pandas的read_csv读取一个csv表格,报错. 解决方法:用editplus打开表格,改变编码格式为utf-8,保存,重新读取,通过. 
