由于SpringBoot默认不支持 JSP(因为默认打包方式为jar包,jsp不支持在jar包内运行),需要引入第三方模板引擎技术实现页面渲染。
其实jsp就是一个模板引擎,还有用的比较多的freemarker、Thymeleaf。但再多的模板引擎,他们的思想都是一样的,什么样一个思想呢我们来看一下这张图:
模板引擎的作用:写一个页面模板,比如有些值是动态的,我们可以在这些值的地方写一些表达式。而这些值,从哪来呢,就是我们在后台封装一些数据。然后把这个数据和页面模板交给我们模板引擎,模板引擎按照我们这个数据帮你把表达式解析、填充到我们指定的位置,最终把这个数据生成一个我们想要的内容给我们写展现出去
SpringBoot推荐的是Thymeleaf模板引擎
1、表达式
表达式部分官方文档:https://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html#standard-expression-syntax
| 表达式名字 | 语法 | 用途 |
|---|---|---|
| 变量取值 表达式 | ${…} | 获取请求域、session域、对象等值 |
| 选择变量 表达式 | *{…} | 获取上下文对象值 |
| 消息 表达式 | #{…} | 消息(获取国际化等值) |
| 链接 表达式 | @{…} | 生成适应当前项目根路径的链接 |
| 片段 表达式 | ~{…} | 导入html片段,获取公共页面片段 |
2、字面量
文本值: `‘one text’ , ‘Another one!’ ,…数字: 0 , 34 , 3.0 , 12.3 ,…布尔值: true , false
空值: null
变量: one,two,… 变量不能有空格
3、文本操作
字符串拼接: +
变量替换: |The name is ${name}|
4、数学运算
运算符: + , - , * , / , %
5、布尔运算
运算符: and , or
一元运算: ! , not
6、比较运算
比较: > , < , >= , <= ( gt , lt , ge , le )等式: == , != ( eq , ne )
7、条件运算
If-then: (if) ? (then)
If-then-else: (if) ? (then) : (else)
Default: (value) ?: (defaultvalue)
8、特殊操作
无操作: _
9、设置属性值: th:attr
设置单个值
设置多个值
以上两个的代替写法 th:xxxx




