controller返回html页面,Spring Boot 中 Controller 返回HTML页面

本文介绍如何在SpringBoot项目中正确配置前端资源路径,包括静态文件和模板文件的位置,并演示了如何使用Thymeleaf作为模板引擎。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

目录/resources代替了webapp

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

3c642064023f?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

Spring Initializr新建的项目的目录

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

/static 用来存放静态文件

/templates 用来存放前端页面

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

编写hello.html

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

Hello World

Hi!!!!!!!!!!!!!!!!!!!

可能你注意到了,在中多了点东西,没关系,继续往下看。

编写Controller返回hello.html

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

@Controller

public class IndexController {

@RequestMapping("/hello")

public String hello(){

System.out.println("Hello!!!");

return "hello";

}

}

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

3c642064023f?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

测试一下接口

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

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

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

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

引入Thymeleaf依赖

我用Gradle做依赖管理:

compile group: 'org.springframework.boot', name: 'spring-boot-starter-thymeleaf', version: '1.5.4.RELEASE'

配置application.properties

# 模板配置

# 这个开发配置为false,避免改了模板还要重启服务器

spring.thymeleaf.cache=false

# 这个是配置模板路径的,默认就是templates,可不用配置

spring.thymeleaf.prefix=classpath:/templates/

# 这个可以不配置,检查模板位置

spring.thymeleaf.check-template-location=true

# 下面3个不做解释了,可以不配置

spring.thymeleaf.suffix=.html

spring.thymeleaf.encoding=UTF-8

spring.thymeleaf.content-type=text/html

# 模板的模式

spring.thymeleaf.mode=HTML5

继续测试接口

3c642064023f?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

成功啦!

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值