thymeleaf使用

基于maven管理springboot项目配置
在pom.xml文件添加thymeleaf的依赖



	org.springframework.boot
	spring-boot-starter-thymeleaf

启用thymeleaf模版引擎
application.properties文件中加入配置:

#thymeleaf配置
#指定国际化文件
#spring.messages.basename=templates/home
# Enable template caching.
spring.thymeleaf.cache=true
# Check that the template exists before rendering it.
spring.thymeleaf.check-template=true
# Check that the templates location exists.
spring.thymeleaf.check-template-location=true
# Enable Thymeleaf view resolution for Web frameworks.
spring.thymeleaf.enabled=true
# Template files encoding.
spring.thymeleaf.encoding=UTF-8
# Comma-separated list of view names that should be excluded from resolution.
#spring.thymeleaf.excluded-view-names=
# Template mode to be applied to templates. See also StandardTemplateModeHandlers.
spring.thymeleaf.mode=HTML
# Prefix that gets prepended to view names when building a URL.
spring.thymeleaf.prefix=classpath:/templates/
# Maximum size of data buffers used for writing to the response, in bytes.
#spring.thymeleaf.reactive.max-chunk-size=
# Media types supported by the view technology.
#spring.thymeleaf.reactive.media-types=
# Content-Type value written to HTTP responses.
spring.thymeleaf.servlet.content-type=text/html
# Suffix that gets appended to view names when building a URL.
spring.thymeleaf.suffix=.html
# Order of the template resolver in the chain.
# spring.thymeleaf.template-resolver-order=
# Comma-separated list of view names that can be resolved.
# spring.thymeleaf.view-names=

页面引入thymeleaf

thymeleaf命名空间


thymeleaf标签使用的两种形式
1.无需引入th命名空间,html5支持的自定义属性
data-th-text形式 :
2.需引入命名空间 th:text形式 :

thymeleaf语法

th:text 文本显示
hello world

可以在标签中使用运算符+, -, *, /, %

运算符:
thymeleaf表达式
  1. 变 量 表 达 式 : 引 用 页 面 中 的 变 量 , 同 E L 表 达 式 中 的 {} 变量表达式:引用页面中的变量,同EL表达式中的 EL{}作用一样;
  1. #{} 消息表达式(文字国际化表达式):用来引用国际化资源文件中的文字信息;
    如home.properties:
home.welcome=this messages is from home.properties!

home_zh_CN.properties:

home.welcome=来自于home.properties消息

Note:配置国际化资源文件时,一定要建立默认的XX.properties文件,再建立各个区域下的XX_zh_CN.properties文件;

使用消息表达式引用文字:

使用消息表达式时,经常出现的错误??home.welcome_zh_CN??
网上提供的解决方案:
第一种:在thymeleaf页面中引入:

引入css文件夹下的gtvg.css,不过发现没有这个文件,尝试这种解决方式发现没有效果
第二种:
在application.properties文件中加入一条配置:
#指定国际化文件位置
spring.messages.basename=templates/home
亲测有效,加入配置运行成功;

  1. *{} 选择表达式 :选择上文中对象的属性
  1. @{} 链接表达式:链接的书写
链接表达式:
1. 相对当前路径
 => http://localhost:8080/static/js/test.js
2. 相对服务器
 => http://localhost:8080/static/js/test.js
3. 相对协议路径
 => static/js/test.js
4. 绝对路径
 => http://localhost:8080/static/js/test.js
  1. 分段表达式
    footer.html


    ©2019 sdongwan

其他页面引用footer页面中的碎片

th:insert方式

测试insert碎片

效果等同于:

©2019 sdongwan

th:replace方式


测试replace碎片

效果等同于:


		©2019 sdongwan

th:include方式

测试include碎片

效果等同于:

©2019 sdongwan

note:注意一下三者的区别;

条件判断
  1. if 判断
user.name =sdongwan
user.name != sdongwan

等同于java里面:

if () {
	...
} else {
	...
}

note:if满足了,对应条件下的unless下的标签不会显示

2.switch判断

user is a girl
user is a boy
user's gender is unknown

note:前面的case执行了,后面的case就不会显示出来

比较判断
大于(> or gt),
小于(< or lt),
大于等于(>= or ge) ,
小于等于(<= or le),
等于(== or eq) ,
不等于(!= or ne)

user.name = sdongwan

note:比较表达式建议使用gt,lt…这种写法,使用>,<…在html中容易与标签混淆;

迭代器

效果:

name0
name1
name2

类似于java中for each循环:

for(User user : userList) {

}
th:attr 设置属性值

		设置任意属性(内置属性和自定义属性)值

html标签内置的属性可以直接使用下面这种写法:


	设置内置属性值

thymeleaf 内置表达式

thymeleaf 3.0 官方使用手册:usingthymeleaf

你可能感兴趣的:(thymeleaf)