# thymeleaf配置,开发环境不启用缓存,正式环境下请启用缓存,提高性能
spring.thymeleaf.cache=false
# thymeleaf对html元素格式要求严格,设置它的mode为HTML,忘记结束标签后不会报错
spring.thymeleaf.mode=HTML
springboot封装的thymeleaf默认是2.x版本,如果想使用最新的3.x版本可以在< properties >中配置版本
<properties>
<thymeleaf.version>3.0.10.RELEASE</thymeleaf.version>
<thymeleaf-layout-dialect.version>2.2.2</thymeleaf-layout-dialect.version>
</properties>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
请提前在项目resources目录下创建css、js文件夹,分别创建index.css,common.js文件,并在js文件夹下放入jquery.min.js,后面的html和模版需要用到
属性汇总
编号 | 属性 | 描述 | 示例 |
1 | th:text | 计算其值表达式并将结果设置为标签的标签体 | 中国 ,值为 null 为空时,整个标签不显示任何内容。 |
2 | th:utext | th:text 会对结果中的特殊字符转义,th:utext 不会转义,适合后端直接向前端输出 html 标签的内容 | 中国 ,,userInfo可以是html内容。 |
3 | th:attr | 为标签中的任意属性设置,可以一次设置多个属性 | 前往百度 |
4 | th:* | 为 html 指定的属性设值,一次设置一个 | 前往百度 |
5 | th:alt-title | 同时为 alt 与 title 属性赋值 | th:A-B |
6 | th:lang-xmllang | 同时为 lang 、xmllang 属性赋值 | |
7 | th:fragment | 定义模板片段 | |
8 | th:insert | 将被引用的模板片段插⼊到自己的标签体中 | |
9 | th:replace | 将被引用的模板片段替换掉自己 | |
10 | th:include | 类似于 th:insert,⽽不是插⼊⽚段,它只插⼊此⽚段的内容 | |
11 | th:remove | 删除模板中的某些代码片段 | |
12 | th:each | 迭代数据,如 数组、List、Map 等 | |
13 | th:if | 条件为 true 时,显示模板⽚段,否则不显示 | 已婚1 |
14 | th:unless |
条件为 false 时,显示模板⽚段,否则不显示 | 已婚2 |
15 | th:switch |
与 Java 中的 switch 语句等效,有条件地显示匹配的内容 | |
16 | th:case | 配合 th:switch 使用 | 管理员 操作员 未知用户 |
17 | th:with | 定义局部变量 | |
18 | th:inline |
禁用内联表达式,内联js,内联css |
(1)使用模版:定义公用头部css和尾部js引用,在其他页面中引用模版,更换样式时,只需更换模版中的引用即可
操作步骤:在resources—templates目录下创建一个template的文件夹,里面创建common.html文件,文件内容如下,以下有两种用法:
1.通过 th:fragment="模版名称" 定义一个模版
2.通过 id标签 定义一个模版
在需要引用头部、尾部的html文件中,使用 th:replace=“template/common :: header” 模版路径 :: 模版名称
SpringBoot项目开发系列
首页
SpringBoot项目开发系列
(2)变量表达式: Spring EL表达式(在Spring术语中也叫model attributes)。如下所示
直接 . 出后台返回对象属性
直接循环出后台返回数组-list属性
可以写th:if 判断, 我大于20啦
th:unless与 if 相反 我还年轻
@RequestMapping("/index")
public String index(ModelMap model){
List list = new ArrayList();
for(int i=1 ; i < 10 ; i++){
User user = new User();
user.setId(i);
user.setAge(19 + i);
user.setName("zy" + i);
list.add(user);
}
//在方法中使用ModelMap,然后把值返回到html页面
model.addAttribute("user",list.get(0));
model.addAttribute("users",list);
return "index";//返回 tempaltes 下的 index.html
}
SpringBoot项目开发系列
首页
SpringBoot项目开发系列
我大于20啦
我还年轻
---thymeleaf --each循环,一般table表格展示数据居多
还有字符串操作
判断是不是为空:null:
不为空
为空
判断是不是为空字符串: “”
空的
判断是否相同:
相同于jack,
相同于ywj,
不相同于jack,
不存在设置默认值:
是否包含(分大小写):
包ez
包j
是否包含(不分大小写)
包j
同理。。。下面的和JAVA的String基本一样。。。。不笔记解释,官网有
${#strings.startsWith(name,'o')}
${#strings.endsWith(name, 'o')}
${#strings.indexOf(name,frag)}// 下标
${#strings.substring(name,3,5)}// 截取
${#strings.substringAfter(name,prefix)}// 从 prefix之后的一位开始截取到最后,比如 (ywj,y) = wj, 如果是(abccdefg,c) = cdefg//里面有2个c,取的是第一个c
${#strings.substringBefore(name,suffix)}// 同上,不过是往前截取
${#strings.replace(name,'las','ler')}// 替换
${#strings.prepend(str,prefix)}// 拼字字符串在str前面
${#strings.append(str,suffix)}// 和上面相反,接在后面
${#strings.toUpperCase(name)}
${#strings.toLowerCase(name)}
${#strings.trim(str)}
${#strings.length(str)}
${#strings.abbreviate(str,10)}// 我的理解是 str截取0-10位,后面的全部用…这个点代替,注意,最小是3位
thymeleaf还有很多其他 th标签 ,比如表单,url等,但我喜欢用原生的属性,ajax操作等
下一篇:HikariCP数据库连接池