Thymeleaf 学习笔记 (4)~~~~

本文详细介绍了Thymeleaf模板引擎中的模板布局特性,包括如何使用th:fragment定义可复用的模板片段,以及th:insert、th:replace等属性如何在页面中插入或替换内容。此外还说明了如何利用参数传递实现更灵活的模板应用。

模板布局


模板布局主要用到的标记有这么几个:

 


  1. th:fragment ,用来定义片段的,用法:th:fragment="fragmentName",起一个名字方便被其他地方引用,如果能够可以传递参数可以写成是 th:fragment="fragmentName(a,b)",即使不声明 a,b 参数,也没关系,仍然可以在insert 或者是 replace 时指定参数名称传入参数值。
  2. th:insert,在宿主元素内加入指定的片段,用法:th:insert="~{footer ::fragmentName}" ,将会把 footer 模板中的 copy 片段插入进来,如果有参数则写成是 th:insert="footer::fragmentName(${valueA},${valueB})",如果指定了参数的名称则不需要担心参数顺序,例如这样:th:insert="footer::fragmentName(a=${valueA},b=${valueB})"
  3. th:replace,将宿主元素替换为指定的片段,用法:th:replace="~{}"
  4. th:include (3.0 不推荐使用了),将宿主元素的内容改为指定片段中的内容。
  5. th:assert 是一个断言,如果给定的条件(多个条件用逗号分隔)没有返回 true,则抛出异常。
  6. th:remove,用来在解释时删除元素用,可选值为:

    1. all :删除所在的标签和所有子内容
    2. body:只删除子内容
    3. tag:只删除标签,保留子内容
    4. all-but-first:删除除了第一个子元素之外的其他子元素
    5. none:不做什么操作

       


     

 

 

片段的语法:

 

 


  1. ~{模板名::片段名},例如 ~{footer :: copy}
  2. ~{模板名::CSS选择器},例如 ~{footer :: #copy-section}

     


注意:

 

 


  1. !{...} 这个外包装符号是可以省略的
  2. 如果片段声明了参数,则 insert 或者是 replace 时,可以不指定参数名称按顺序传入参数,如果片段没有声明参数则需要指定参数名和值传入

     


模板可以接受的参数不只是字符串,数字,对象等,也可以是一个片段。如果传入的是一个片段,这个片段参数可以直接在 insert 和 replace 中作为片段使用,如果传入的片段是空内容标记(~{}),则表示为无内容,如果传入的是不操作标记下划线(_)则表示不做任何操作,保持原内容。insert 和 replace 的参数可以使用三目运算符作为条件动态的传入参数(或片段)。

 

 

 

 

 

 

转载于:https://my.oschina.net/yangyan/blog/811727

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值