使用Spring时,你能区分RestCo

北京中科白癜风医院权威 https://jbk.39.net/yiyuanzaixian/bjzkbdfyy/jzpj/

在使用Spring开发时,对于Controller中的注解

RestController和

Controller需要我们区分清楚。

如果Controller中某个返回一个页面,使用

Controller

单独使用

Controller不加

ResponseBody的话,一般使用在,要返回一个视图的情况,这种情况属于比较传统的SpringMVC的应用,对应于前后端不分离的情况。

SpringMVC传统工作流程

示例1:

Controller返回一个页面

当我们需要直接在后端返回一个页面的时候,Spring推荐使用Thymeleaf模板引擎。

SpringMVC中

Controller中的方法,可以直接返回模板名称,接下来Thymeleaf模板引擎,会自动进行渲染,模板中的表达式支持Spring表达式语言(SpringEL)。如果需要用到Thymeleaf模板引擎,注意添加依赖!不然会报错。

添加依赖

控制类的方法的返回值return"hello",Spring默认会去resources目录下templates目录下找,所以建议把页面放在resources/templates目录下hello.html;

如果要对页面在templates目录下的hello文件夹中的话,返回页面的时候,控制类的方法的返回值return"hello/hello"。

添加依赖

如果Controller中某个返回JSON或XML形式数据,使用

RestController,或者

Controller+

ResponseBody组合使用

如果你需要在Spring4之前,开发RESTfulWeb服务的话,你需要使用

Controller并结合

ResponseBody注解,也就是说

Controller+

ResponseBody=

RestController(Spring4之后新加的注解),返回JSON或XML形式数据。

RestController只返回对象,对象数据直接以JSON或XML形式,写入HTTP响应(Response)中,这种情况属于RESTfulWeb服务,这也是目前日常开发所接触的最常用的情况(前后端分离)。

添加依赖

ResponseBody注解的作用,是将Controller的方法返回的对象,通过适当的转换器转换为指定的格式之后,写入到HTTP响应(Response)对象的body中,通常用来返回JSON或者XML数据,返回JSON数据的情况比较多。

SpringBoot默认集成了jackson,对于此需求你不需要添加任何相关依赖,返回需要返回的JSON、XML的结果集。

添加依赖

使用

RestController注解的时候需要注意几个问题:

如果使用

RestController注解Controller,那么该Controller中的方法,就无法返回jsp页面。

就是说如果在方法中return"xx",那么它只会返回"xx"的内容,因为

RestController中相当于已经有了

RessponseBody的注解效果,所以它无法返回jsp,html界面,配置的InternalResourceViewResolver不工作,只能返回return的内容。

如果该Controller中需要返回jsp,html界面,那么就需要使用

Controller注解Controller,不能用

RestController。

如果我们在Controller方法中,需要返回JSON、XML,或者我们自己定义的类型到页面中,那么就需要使用

ResponseBody注解该方法。




转载请注明:http://www.aierlanlan.com/cyrz/4471.html

  • 上一篇文章:
  •   
  • 下一篇文章: 没有了