thymeleaf中的fragment使用
fragment介绍
fragment类似于JSP的tag,在html中文件中,可以将多个地方出现的元素块用fragment包起来使用。
fragment使用
定义fragment
所有的fragment可以写在一个文件里面,也可以单独存在,例如
1 | <footer th:fragment="copy"> |
fragment的引用
- th:insert:保留自己的主标签,保留th:fragment的主标签。
- th:replace:不要自己的主标签,保留th:fragment的主标签。
- th:include:保留自己的主标签,不要th:fragment的主标签。(官方3.0后不推荐)
1 | 导入片段: |
在Springboot中,默认读取thymeleaf文件的路径是:src/main/resource/templates,静态文件为src/main/resource/static,这个默认值可以在配置文件中修改:spring.thymeleaf.prefix=classpath:/templates/
所有在调用fragment时,是默认从thymeleaf的根路径开始设置的:
例如<head th:replace="/include/header::head" >
从读取templates/include/header.html中 fragment=head的代码块
fragment的参数设置
1 | <div th:fragment="frag (onevar,twovar)"> |
fragment的lexible layouts
定义(文件地址:include/header.html):
1 | <head th:fragment="head(title,links,scripts)"> |
调用:
1 | <head th:include="include/header :: head(~{::title},~{::link},~{::script})"> |
注意是link 和script,不是links 和scripts
如果调用的页面没有link或者script ,则指定传入的参数为~{}即可。
1 | <head th:include="include/header :: head(~{::title},~{},~{})"> |