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消息)。

 

posted @ 2023-02-02 09:52  星光闪闪  阅读(247)  评论(0)    收藏  举报