【SpringBoot/Thymeleaf】如何使SpringBoot程序显示网页
本文例程下载:https://files.cnblogs.com/files/heyang78/myBank_thymeleaf_210906.rar
本文将带您重返石器时代,品尝下本质依旧是jsp/servlet的所谓SpringBoot/thymeleaf新酒。
正文开始:
第一步:在pom.xml里添加SpringBoot的web支持。
<dependencies> ...... <!-- Web support --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency> <!-- thymeleaf --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <!-- Hot deployment 可选 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> </dependency> </dependencies>
以上四项里,Web support里面的两项是必要的,thymeleaf也是必要的,devtools热部署是可选的,但有了这一项可以运行起来改变控制器的页面指向,加上方便一些。
第二步:准备网页。
在recources目录下准备一个templates目录,里面放入一个html的页面。
如上图,我就放入一个名为sample.html的页面,里面内容很随意:
<!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="UTF-8"> <title>Sample page</title> </head> <body> <h1>Welcome to the thymeleaf world.</h1> </body> </html>
大家仿制就好。
第三步:制作Controller
package com.hy.mybank.ctrl; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @Controller public class ActionController { @RequestMapping("/sample") public String showSamplePage() { return "sample"; } }
制作一个控制器类,这个类将根据地址栏输入的内容转到合适的网页,首先它要引入@Control的注解,表示它将接管页面跳转;其次负责处理的函数需要引入@RequestMapping注解,表示什么样的路径由这个函数处理;在函数结尾处,返回字符串sample,程序将根据这个字符串找到resources/template/sample.html,这就是我们刚才草就的网页了。
为什么路径部分和扩展名部分程序能自己补充呢?这就是约定。一看到Controller返回字符串,SpringBoot程序就默认文件在resources/template下,扩展名是html。当然这些也可以配置,但保持现状也挺好。
第四步,把带main函数的类运行起来,你会发现SpringBoot程序不像以往跑一遍就停了,而是保持活跃状态。
第五步,打开浏览器,输入http://localhost:8080/sample,网页就显现出来了。
整个过程到这里就结束了,让SpringBoot程序显示网页就这么简单,就这还用得着买本死贵死贵,动辄四五十块钱的书来看吗?
-END-
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
2019-09-06 【高中数学/指数函数、对数函数】已知:正实数x,y,z满足2^x=3^y=6^z,则不正确的选项是?(2022年天津滨海新区塘沽第一中学校考模拟题)
2019-09-06 【Canvas与艺术】六边形漩涡
2019-09-06 [Java]手动构建SQL语法树(sql简单无嵌套)并输出与之对应的SQL语句之二
2019-09-06 [Java]手动构建SQL语法树(sql简单无嵌套)并输出与之对应的SQL语句之一
2019-09-06 【高中数学\基本不等式】已知a,b皆为正数,且2/(a+2)+1/(a+2b)=1,则a+b的最小值是多少,此时a等于几?
2019-09-06 [Java]用于将链表变成字符串并在元素之间插入分隔符的有用函数“String.join”
2017-09-06 【Canvas与艺术】绘制朝鲜国旗