序言:

Thymeleaf 是Java服务端的模板引擎,与传统的JSP不同,前者可以使用浏览器直接打开,因为可以忽略掉拓展属性,相当于打开原生页面,给前端人员也带来一定的便利。如果你已经厌倦了JSP+JSTL的组合,Thymeleaf或许是个不错的选择!本工程传送门:SpringBoot-Web-Thymeleaf

开始使用

1.引入依赖

SpringBoot默认提供了Thymeleaf的Starter,只需简单引入依赖即可。

org.springframework.boot

spring-boot-starter-thymeleaf

目前默认版本是2.1,如果想升级版本到3.0,可以这样修改。

3.0.7.RELEASE

2.0.0

为了方便开发,项目案例采用了热部署工具dev-tools ,这样我们在修改页面之后,IDEA会自动加载,从而达到实现热更新的效果。

org.springframework.boot

spring-boot-devtools

runtime

注:由于IDEA默认关闭了热部署,需要做一些设置才能使其生效。解决方法:首先按住Ctrl+Shift+Alt+/ 然后进入 Registry ,然后勾选compiler.automake.allow.when.app.running 即可。另外,Build->Compiler 也要勾选上Build Project automatically .

2. 添加相关配置

Thymeleaf默认开启了页面缓存,在开发的时候,应该关闭缓存。此外,通常我们还会指定页面的存放路径。(默认是classpath:/templates/)

application.yml 配置如下:

spring:

thymeleaf:

cache: false #关闭缓存

prefix: classpath:/views/ #添加路径前缀

3.编写HTML

编写Thymeleaf和书写HTML5页面没有什么不同,最大的转变就是使用拓展属性(th:xx)去跟服务端进行数据交互,保留原始页面风格,也是Thymeleaf的推崇的风格。例如下面这个简单的案例,启动项目,我们发现页面跳转的是简书的连接,这一点也验证了Thymeleaf覆盖原生页面数据的极佳能力。

页面代码:

Thymeleaf

欢迎使用Thymeleaf!!

戳我有惊喜

后端代码:

@Controller

public class UserController {

@GetMapping("/")

public String index(Model model) {

model.addAttribute("info", "user/list");

return "index";

}

@GetMapping("/user")

public String hehe(Model model) {

model.addAttribute("user", new User(UUID.randomUUID().toString(), "yizhiwazi", "20170928"));

return "user";

}

@GetMapping("/user/list")

public String userlist(Model model) {

List userList = new ArrayList<>();

userList.add(new User(UUID.randomUUID().toString(), "yizhiwazi", "20170928"));

userList.add(new User(UUID.randomUUID().toString(), "kumamon", "123456"));

userList.add(new User(UUID.randomUUID().toString(), "admin", "admin"));

model.addAttribute("userList", userList);

return "userList";

}

}

现在我们尝试回填一个表单,展示单个用户信息。

接下来,我们进入一个更复杂的案例,例如展示一个用户列表信息,不需要编写新的标签,就可以完成对批量用户的遍历。

用户列表

用户姓名:

登录密码:

好了,Thymeleaf简单介绍到这里,更多详细说明,可阅读Thymeleaf 官方指南 3.0

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

java h5模板引擎_详解SpringBoot+Thymeleaf 基于HTML5的现代模板引擎相关推荐

  1. java xml快捷注释_详解SpringBoot 快速整合Mybatis(去XML化+注解进阶)

    序言:使用MyBatis3提供的注解可以逐步取代XML,例如使用@Select注解直接编写SQL完成数据查询,使用@SelectProvider高级注解还可以编写动态SQL,以应对复杂的业务需求. 一 ...

  2. java 配置文件的路径_详解java配置文件的路径问题

    详解java配置文件的路径问题 详解java配置文件的路径问题 各种语言都有自己所支持的配置文件,配置文件中有很多变量是经常改变的.不将程序中的各种变量写死,这样能更方便地脱离程序本身去修改相关变量设 ...

  3. java新建一个女朋友_详解java创建一个女朋友类(对象啥的new一个就是)==建造者模式,一键重写...

    创建一个女朋友,她有很多的属性,比如:性别,年龄,身高,体重,类型等等,虽然每个女朋友都有这些属性,但是每个人找女朋友的要求都是不一样的,有的人喜欢男的,有的人喜欢女的,有的喜欢胖的,不同的人可以根据 ...

  4. java生成pdf方法_详解Java生成PDF文档方法|chu

    最近项目需要实现PDF下载的功能,由于没有这方面的经验,从网上花了很长时间才找到相关的资料.整理之后,发现有如下几个框架可以实现这个功能. 1. 开源框架支持iText,生成PDF文档,还支持将XML ...

  5. java中batch基础_详解Spring batch 入门学习教程(附源码)

    详解Spring batch 入门学习教程(附源码) 发布时间:2020-09-08 00:28:40 来源:脚本之家 阅读:99 作者:achuo Spring batch 是一个开源的批处理框架. ...

  6. java 变量与常量_详解Java变量与常量

    一.常量 用final修饰(也称最终变量) 常量在声明时必须赋初值,赋值后不能再修改值 常量名通常用全大写字母表示 声明时需要添加final或static final类型修饰符,例如: private ...

  7. java使用集合存储过程_详解java调用存储过程并封装成map

    详解java调用存储过程并封装成map 发布于 2020-5-1| 复制链接 摘记: 详解java调用存储过程并封装成map           本文代码中注释写的比较清楚不在单独说明,希望能帮助到大 ...

  8. java同步异步调用_详解java 三种调用机制(同步、回调、异步)

    1:同步调用:一种阻塞式调用,调用方要等待对方执行完毕才返回,jsPwwCe它是一种单向调用 2:回调:一种双向调用模式,也就是说,被调用方在接口被调用时也会调用对方的接口: 3:异步调用:一种类似消 ...

  9. java 死锁 内存消耗_详解Java中synchronized关键字的死锁和内存占用问题

    先看一段synchronized 的详解: synchronized 是 java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码. 一.当两个并 ...

最新文章

  1. 大数据集合求交集_通达信北上资金+盘面分析sp版面,智能大数据集合,筹码占比指标...
  2. 免费下载!200+讲者核心观点公布!2021最强AI学术会议视频全部回放
  3. 001PHP文件处理——文件处理disk_total_space disk_free_space basename dirname file_exists filetype...
  4. android学习从模仿开始 —— 模仿UI 导航帖
  5. Linux内核开发工作方向
  6. Attention-OCR(Attention-based Extraction of Structured Information from Street View Imagery)
  7. Sublime Text 2 代码片断
  8. NAACL 2019最佳论文:量子概率驱动的神经网络
  9. matlab 高分屏 变小,解决Ubuntu高分屏下matlab标题栏(菜单栏)字体过小问题
  10. 如何用css和HTML结合画熊,结合伪元素实现的纯CSS3高级图形绘制
  11. creator2.0.2 native游戏截屏微信分享
  12. android指纹java_Android
  13. Node 连接mysql数据库
  14. 官方示例之地球模块五:ThingLayer
  15. 【51单片机开发板】可调周期、占空比pwm工程
  16. 未检测到正确安装的网络适配器_网络适配器图标出现黄色感叹号的解决办法
  17. java字符型变量有几个,Java 字符型变量
  18. 小i机器人2019数博会C位展实力 “认知智能”引领行业创新变革
  19. 【转】一款已上市MMO手游地图同步方案总结
  20. JavaWeb|浅谈Cookie

热门文章

  1. java使用freemarker导出word标题失效问题
  2. 微星小飞机怎么调风扇转速?
  3. android 微信 备份通讯录,微信备份手机通讯录在哪?怎么用微信备份手机通讯录?...
  4. C语言小程序——调用系统应用
  5. [全网首发]一款好看的个人主页源码
  6. 转行学习3D游戏建模多久能入行?
  7. stem教育什么意思
  8. 信息学奥赛一本通OJ勘误
  9. 《C++》第1章——第111章
  10. selenium淘宝爬虫