thymeleaf面试题
简介
thymeleaf是一个模板引擎,基于thymeleaf模板可以生成静态文件
(HTML、XML、TEXT、JAVASCRIPT、CSS、RAW文件都可以生成)
thymeleaf与freemarker
Thymeleaf能够直接在浏览器中打开并正确显示模板页面,而不需要启动整个Web应用。
这是由于:Thymeleaf是通过HTML的标签属性渲染标签内容。采用标签属性来进行模板的定义,没有破坏基本的html文档结构,当有数据返回到页面时,Thymeleaf 标签会动态地替换掉静态内容,使页面动态显示。
Thymeleaf必须符合xml规范
freemarker必须启动web应用才能正常显示
thymeleaf是采用给标签加属性的方式来定义自己的内容
freemarker采用的是自己定义的标签来定义自己的内容
大多数程序员倾向于freemarker
使用
加入依赖:
spring-boot-starter-thymeleaf
语法:
th:任意属性;来替换原生属性的值
th:text 设置内容,转义特殊字符
th:utext 设置内容,不转义特殊字符
th:if 表达式的值为true,则标签会渲染到页面,否则不进行渲染。
th:unless 表达式的值为true,则标签不会渲染到页面,否则进行渲染。
th:switch 匹配其中第一个 case 后,其它的 case 都将视为 false,当没有匹配到时取默认值,当有多个匹配到时取第一个
th:each 遍历元素
th:with 为变量赋值
th:include 替换内容
th:replace 替换标签和内容
[[]] 会转义
[()]不会别转义
内置的工具对象:针对不同的数据类型提供了一些方法方便对数据进行处理
#dates 处理java.util.date的工具对象
#calendars 处理java.util.calendar的工具对象
#numbers 用来对数字格式化的方法
#strings 用来处理字符串的方法
#bools 用来判断布尔值的方法
#arrays 用来护理数组的方法
#lists 用来处理List集合的方法
#sets 用来处理set集合的方法
#maps 用来处理map集合的方法
链接表达式
@{...}
链接表达式在构建URL并向其添加有用的上下文和会话信息
算术运算:
+, -, *, /, %
布尔运算
and,or,!,not
比较和相等:
比较运算符:>,<,>=,<=(gt,lt,ge,le)
相等运算符:==, != (eq, ne)
三元表达式
If-then结构:
(if) ? (then)
If-then-else结构:
(if) ? (then) : (else)
Default结构:
(value) ?: (defaultvalue)
表达式预处理
关于表达式的最后一件事是知道表达式预处理,在__之间指定,如下所示:
#{selection.__${sel.code}__}
上面代码中,第一个被执行的变量表达式是:${sel.code},并且将使用它的结果作为表达式的一部分(假设${sel.code}的结果为:ALL),在此处执行国际化的情况下(这将查找与关键selection.ALL消息)。

浙公网安备 33010602011771号