SpringBoot2 使用@RestController 无法返回一个地址,前台无法渲染为页面,只能返回json数据

Posted Archibald Witwicky

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot2 使用@RestController 无法返回一个地址,前台无法渲染为页面,只能返回json数据相关的知识,希望对你有一定的参考价值。

spring boot之访问静态页面

 

楼主前两天自学spring boot,然后在学习的过程中,出现一个疑问,就是如何去访问静态的html网页,这个问题,楼主上网上搜了下,找到的是在resource目录下建立一个templates文件夹,然后html网页放在其文件夹下:

然后楼主照做,发现还是访问不了,然后发现是需要写一个controller访问然后跳转,那就又写了一个controller,截图如下:

做完后,发现还是不行,这时候发现需要在pom中添加这个依赖

然后还是不行,这时候楼主就纳闷了,没问题啊,后来经过一段时间对比,发现,楼主的注解写错了,不应该写@RestController,应该写@Controller,然后楼主就新建了一个Controller,截图如下:

这样配置后,进行测试,结果发现是可以的:

那么问题来了,为什么换了controller注解就好了呢?

我们来对比下restController和controller的区别:

@RestController is a stereotype annotation that combines @ResponseBody and @Controller.
意思是:
@RestController注解相当于@ResponseBody + @Controller合在一起的作用。

1)如果只是使用@RestController注解Controller,则Controller中的方法无法返回jsp页面,配置的视图解析器InternalResourceViewResolver不起作用,返回的内容就是Return 里的内容。

例如:本来应该到success.html页面的,则其显示success.

2)如果需要返回到指定页面,则需要用 @Controller配合视图解析器InternalResourceViewResolver才行。

3)如果需要返回json或者xml或者自定义mediaType内容到页面,则需要在对应的方法上加上@ResponseBody注解

以上是关于SpringBoot2 使用@RestController 无法返回一个地址,前台无法渲染为页面,只能返回json数据的主要内容,如果未能解决你的问题,请参考以下文章

SpringBoot2核心技术(基础入门)- 02SpringBoot2入门安装配置

Springboot2 和 oauth

2018最新SpringBoot2.0教程(零基础入门)

SpringBoot2.X最佳实践《一》 之 SpringBoot2.x初体验

SpringBoot2 线程池的定义和使用

springboot2.x版本整合redis(单机/集群)(使用lettuce)