SpringBoot主要支持Thymeleaf、Freemarker、Mustache、Groovy Templates等模板引擎。
SpringBoot更倾向于继承Thymeleaf,因为Thymeleaf语法并不会破坏文档的结构,并且Thymeleaf依然是有效的HTML文档,可以实时预览,Thymeleaf在项目运行时会替换掉对应的值。
SpringBoot更倾向于继承Thymeleaf,因为Thymeleaf语法并不会破坏文档的结构,并且Thymeleaf依然是有效的HTML文档,可以实时预览,Thymeleaf在项目运行时会替换掉对应的值。
2.1 Thymeleaf简介
Thymeleaf是一个XML/XHTML/HTML5模板引擎,Thymeleaf提供了一个用于整合Spring MVC的可选模块,在应用开发中,你可以使用Thymeleaf来完全代替JSP,或其他模板引擎,如Velocity、FreeMarker等。Thymeleaf的主要目标在于提供一种可被浏览器正确显示的、格式良好的模板创建方式,因此也可以用作静态建模。你可以使用它创建经过验证的XML与HTML模板。相对于编写逻辑或代码,开发者只需将标签属性添加到模板中即可,并且该模板引擎也是SpringBoot官方推荐使用的模板引擎。
在使用Thymeleaf之前,需要先了解一些基础内容,下面简单列举一下Thymeleaf常用的表达式、标签和函数。
2.2 Thymeleaf简易教程
在使用Thymeleaf之前,需要先了解一些基础内容,下面简单列举一下Thymeleaf常用的表达式、标签和函数。
2.2.1 常用表达式
Thymeleaf中的表达式通常用于获取请求参数,请求属性,会话属性和应用属性,以及设置链接等。常用的表达式如下:
表达式 | 说明 |
---|---|
${} | 变量表达式 |
@{} | 链接表达式 |
*{} | 选择表达式 |
2.2.1.1 ${}表达式
Thymeleaf提供了专门获取WebContext中请求参数、请求属性、会话属性和应用属性的表达式,这些表达式和JSP中EL表达式的功能非常相似。
- ${x}:获取Thymeleaf上下文中的变量x或者请求(HttpServletRequest)范围内的x属性的值等价于request.getAttribute()。
- ${param.x}:返回名为x的请求参数的值,等价于HttpRequest对象的getParameter()或者getParameterValues()。
- ${session.x}:返回会话(HttpSession)范围内的x的属性,等价于session.getAttribute()
获取变量值用“$”符号,Thymeleaf表达式同样支持属性路径的写法,例如${session.abc.xyz}表示访问HttpSession范围内abc属性的getXyz()方法的返回值。
2.2.1.2 @{}表达式
Thymeleaf对URL地址通过@{}语法来完成的。