首页>>后端>>SpringBoot->springboot返回一个html(springboot返回对象)

springboot返回一个html(springboot返回对象)

时间:2023-12-02 本站 点击:0

spring boot+thymeleaf ,controller中返回html页面不能跳转成功?

spring为什么要推荐使用thymeleaf

应该是spring boot推荐支持,因为spring boot是快速开发,而thymeleaf又是原型即页面,所以从理念是接近的

Spring Boot 中 Controller 返回HTML页面

由于Spring Boot 内嵌了 Tomcat 容器,所以不用把项目打成war包,再放到Tomcat中去运行。但是随之出现了个问题,基于Tomcat的Web应用都有一个 /webapp 目录来存放前端页面和静态资源等文件。那么Spring Boot中应该放在哪里呢?

如果你是用Spring Initializr新建的项目的话,那么当你打开项目,就会看到:

对, /resources 目录下已经存在了两个包:

/static 用来存放静态文件

/templates 用来存放前端页面

Ps:没有目录的话可以自己创建

我们写一个最简单的HTML页面,放在 /templates 下:

可能你注意到了,在 html lang="zh-CN" xmlns:th="" 中多了点东西,没关系,继续往下看。

我们写一个Spring MVC中最简单的Controller,用来返回hello.html:

然后通过Postman来测试一下接口:

可以看到报错了,错误提示说,可能是没有指定视图。

我们知道在传统的Tomcat Web应用里面,还需要配置web.xml与SpringMVC。

不过也太麻烦啦,所以Spring Boot就简化了这些配置,并且推荐使用Thymeleaf前端模板引擎。

前面提到的多了点东西也就是这个引擎的语法。

我用Gradle做依赖管理:

可以看到返回的就是hello.html

Thymeleaf语法也是个坑,有时间再去看看吧~

React+SpringBoot项目部署

这篇文章是记录一下我刚刚部署的过程...倒不是怕忘记,只是部署花了我蛮长时间的,然而最后明白了之后,才发现超级简单...

所以写这篇文章用来帮助那些和我一样的小白...

首先我用create-react-app搭建了一个react项目(这一步操作大家可以去官网看 )

你会得到一个结构如下的项目:

我们可以通过 yarn start 运行这个项目:

跑起来的页面是这样的:

好的,现在你已经成功在开发环境中跑起来了,接下来我们来打包,然后将其部署到服务器上

打包也很简单,执行 npm run build :

你会发现在你的项目文件夹里多了个build文件夹:

然后当你点击index.html之后,会发现打开是这样的:

一片空白...然后你检查了了下index.html,发现里面的路径是这样的:

发现了啥问题没...里面的路径是绝对路径,所以当然找不到js和css以及图片资源啥的,那怎么让这些路径变成相对路径呢,很简单...我们再package.json加上homepage就行:

大家看最后一句就行...然后我们再次打包,然后再点index.html,会发现一切正常:

好的,现在我们通过build得到了html页面以及js和css和各种资源...你也发现了,我们网页的入口是index.html

所以比如说你自己有个服务器地址是 ,你只要在访问 的时候把index.html返回出去就行了...因为我自己的服务器是用SpringBoot搭建的,所以我就用SpringBoot来举例子

SpringBoot返回html页面也很简单,在resource目录下新建一个public文件夹,然后把你React打包的build文件夹里的文件都丢进去就行...(这里截图是我自己的项目,我把一些.js和.json文件去掉了,因为好像没啥用)

这个时候你访问 他就会直接返回index.html了(注意在SpringBoot里的Controller去掉对"/"的拦截)

然后你只要把SpringBoot项目部署到服务器上(如何部署SpringBoot项目大家可以看这篇文章 ),然后访问你的域名,你就可以看到index.html了,比如我刚刚部署的自己的网页

OK这篇文章结束了,大家也发现了目前的网页很简单...就只有一个页面,我刚学前端...所以也不是很懂,不知道之后项目变大了这种方法还行不行...到时候我会再记录的

最后的最后,这篇文章不能再感谢我可爱的女朋友了,祝她前程似锦。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:/SpringBoot/9911.html