什么是模板引擎?
所谓模板引擎就是将数据(Data)填充到页面模板(Template)里面,最终输出一个用户需要的页面
常见的模板引擎就有JSP,Velocity,Freemarker,Thymeleaf.
在以前ssm的时代,项目打包的方式是以war包的形式可以正常解析jsp,但是现在spring boot是以jar包的形式,无法解析jsp,所以jsp这个模板引擎也就是慢慢被淘汰,而spring boot官方推荐使用的是Themeleaf这个模板引擎,这个模板引擎使用很简单,功能更强大。不管是以前jsp模式引擎使用的jsp页面,还是现在thymeleaf使用的html页面,这些页面都有一个特点就是能够动态填充数据,而非像css,js这种写死的静态资源,是一种动态资源。
Thymeleaf的入门介绍
首先在pom.xml引入相关的依赖
<!--thymeleaf-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
<version>1.5.8.RELEASE</version>
</dependency>
<!--不严格检查html5的格式-->
<dependency>
<groupId>net.sourceforge.nekohtml</groupId>
<artifactId>nekohtml</artifactId>
<version>1.9.22</version>
</dependency>
接着到ThymeleafProperties这个类里面,可以看到这个模板引擎已经帮我们配置好了utf-8编码,同时也设好了前缀跟后缀,非常类似于spring mvc的视图解析器配置的前缀和后缀。
它会对我们controller层方法的返回值进行判断。
如果是redirect开头就会重定向到相应的url
如果是forward开头就会转发到相应的url
如果不是,那么它会根据thymeleaf配置文件的前后缀,进行拼接变成“/templates/success.html”,然后到相应的路径下找到相应的视图返回
如果我们要添加其他配置,可以到application.yml中进行添加或者修改,比如我这里要添加一个html5格式的不严格检查
spring:
thymeleaf:
mode: LEGACYHTML5
如果不添加或者配置,thymeleaf会对html5文件进行非常严格的检查,少了个结束标签符都会导致程序不通过
Thymeleaf的语法(这里只做简单介绍)
在jsp里面我们最常用的就是el表达式跟jstl标签(遍历跟判断居多)