配置了thymeleaf那么一定要用@Controller,如果使用@RestController,会返回return中的一串字符
1、方法前不要加@ResponseBody,加这个注释相当于@RestController, 返回一串字符串同上
2、@RestController注解相当于@ResponseBody + @Controller合在一起的作用。
如果使用@RestController注解,则Controller类中的方法无法返回jsp页面,配置的视图解析器InternalResourceViewResolver则不起作用,返回的内容就是Return 里的内容(String/JSON)。
3、@Controller标识一个Spring类是Spring MVC controller处理器
在@controller注解中,返回的是字符串,或者是字符串匹配的模板名称,通过视图解析器InternalResourceViewResolver直接渲染视图,与html/jsp页面配合使用的
https://www.cnblogs.com/softidea/p/5884772.html
假定一个user对象,对象有很多属性(name,sex,age,birth,address,tel)
在我的了解中,这二者的区分为:@restcontroller为@controller和@responsebody的结合
在@controller注解中,返回的是字符串,或者是字符串匹配的模板名称,即直接渲染视图,与html页面配合使用的,
在这种情况下,前后端的配合要求比较高,java后端的代码要结合html的情况进行渲染,使用model对象(或者modelandview)的数据将填充user视图中的相关属性,然后展示到浏览器,这个过程也可以称为渲染;
而在@restcontroller中,返回的应该是一个对象,即return一个user对象,这时,在没有页面的情况下,也能看到返回的是一个user对象对应的json字符串,而前端的作用是利用返回的json进行解析渲染页面,java后端的代码比较自由。
也就是说,@restcontroller更符合前后端分离的思想
使用RESTful操作资源
http://127.0.0.1/item/1 查询,GET
http://127.0.0.1/item 新增,POST
http://127.0.0.1/item 更新,PUT
http://127.0.0.1/item/1 删除,DELETE