前端交给我们的是html页面,如果是我们以前开发,我们需要把它转成JPS文件,转JSP的好处,当我们查出一些数据,
转化到JSP页面以后,我们可以用c:each进行遍历,c:if进行判断,我们JSP支持非常强大的内容,包括也能写JAVA
代码,但是我们现在这种情况,SpringBoot是jar包的方式,不是web项目,第二我们用的还是嵌入式的tomcat,所以
他默认是不支持JSP的,不支持JPS,如果我们使用从静态页面的方式,那给我们开发带来非常大的麻烦,那怎么办呢,
我们springboot推荐使用模板引擎,那么模板引大家听得很多,其实JSP不就是一个模板引擎吗,加上市面上的Velocity,
还有FreeMark,包括SpringBoot推荐的thymeleaf,模板引擎非常多,但再多的模板引擎,他们的思想都是一样的,什么样的一个
思想呢,模板引擎的作用就是我们写一个模板,有些数据是动态的,我们写一些表达式,而这值从哪儿来呢,我们来组装一些数据,
把这数据找到,然后把模板和数据交给模板引擎,模板引擎按照数据,把这个表达式解析,填充到我们指定的位置,然后把数据输出
一个我们想要的内容,给我们写出去,这就是我们的模板引擎,不管是JSP还是其他的模板引擎,都是这个思想,只不过就是说,
不同模板引擎之间,他们的语法可能不一样
模板引擎其他的我不介绍了,我们主要介绍SpringBoot推荐的thymeleaf模板引擎,这个我们称之为高级语言的
模板引擎,他的语法更简单,而且功能更强大,我们就来看一下这个模板引擎,既然要看模板引擎,首先我们看SpringBoot
里面怎么用,怎么用第一步,首先我们要引入thymeleaf,这怎么引呢,对于Springboot来说,什么东西都是stater的事吗,
我们来引一下,pom文件里面,我们来看springboot的官方文档,在官方文档的starter里面,
https://docs.spring.io/spring-boot/docs/1.5.22.RELEASE/reference/html/using-boot-build-systems.html
#using-boot-starter
有咱们模板引擎的场景
spring-boot-starter-thymeleaf
那我们就来引用,我们就叫spring-boot-starter-thymeleaf,版本我们不用管,让他来自动下载,
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
我们来看一下他下载了什么,如果我们需要thymeleaf就只需要他就行了
<properties>
<thymeleaf.version>3.0.9.RELEASE</thymeleaf.version>
<thymeleaf-layout-dialect.version>2.3.0</thymeleaf-layout-dialect.version>
<!-- 布局功能的支持程序 thymeleaf3主程序 layout2以上版本 -->
<!-- thymeleaf2 layout1 -->
<thymeleaf-layout-dialect.version>2.2.2</thymeleaf-layout-dialect.version>
</properties>
但是我们来说,现在默认用的是2.1.6版本,这个2.1.16版本太低了,我们来看一下,thymeleaf的官网,
他把东西都放到github下,我们来搜索一下github上的thymeleaf
https://github.com
https://github.com/thymeleaf/thymeleaf
就是这个项目,releases已发布的,发布到3.0.9了,那我们想要怎么切换,Springboot官方文档里面也说了,
Use Thymeleaf 3
https://docs.spring.io/spring-boot/docs/1.5.22.RELEASE/reference/html/howto-spring-mvc.html
#howto-use-thymeleaf-3
我们使用3版本,只要你把这个版本号改一下就行了,
<properties>
<thymeleaf.version>3.0.2.RELEASE</thymeleaf.version>
<thymeleaf-layout-dialect.version>2.1.1</thymeleaf-layout-dialect.version>
</properties>
这就是thymeleaf3,布局功能的支持程序,就是这一块特别注意,我们布局功能的支持程序,如果是thymeleaf3,
适配layout2以上版本,
<thymeleaf.version>3.0.9.RELEASE</thymeleaf.version>
<thymeleaf-layout-dialect.version>2.3.0</thymeleaf-layout-dialect.version>
我们可以不使用springboot给我们提供的版本,比如我们用3.0.9,我们不用3.0.2,我们用3.0.9,那layout也应该
是3.0.2以上的版本,
https://github.com/ultraq/thymeleaf-layout-dialect/releases?after=2.0.5
Thymeleaf Layout Dialect 2.0.0
ultraq released this on 9 Jul 2016 · 183 commits to master since this release
Layout dialect rewritten to support Thymeleaf 3 (#68, Layout Dialect 2.0 milestone)
如果自己来调节,这个坑就是这样,在2.0的时候,他说我们这个重写了以后,来支持thymeleaf3的,2.0以上的layout功能
才支持,layout是做支持扩展的,那我们也上升到最新版本2.2.2
<thymeleaf-layout-dialect.version>2.2.2</thymeleaf-layout-dialect.version>
如果要改自己一定要注意,这种方式来切换版本,就是说通过这一个,大家以后就触类旁通,要改springboot给我们提供的
一些默认版本,我们就可以这么来改,如果里面还导入了一些适配的中间包,一定要参考官方文档,他们之间的适配关系可
别导错了