2019独角兽企业重金招聘Python工程师标准>>>
模板布局
模板布局主要用到的标记有这么几个:
- th:fragment ,用来定义片段的,用法:th:fragment="fragmentName",起一个名字方便被其他地方引用,如果能够可以传递参数可以写成是 th:fragment="fragmentName(a,b)",即使不声明 a,b 参数,也没关系,仍然可以在insert 或者是 replace 时指定参数名称传入参数值。
- th:insert,在宿主元素内加入指定的片段,用法:th:insert="~{footer ::fragmentName}" ,将会把 footer 模板中的 copy 片段插入进来,如果有参数则写成是 th:insert="footer::fragmentName(${valueA},${valueB})",如果指定了参数的名称则不需要担心参数顺序,例如这样:th:insert="footer::fragmentName(a=${valueA},b=${valueB})"
- th:replace,将宿主元素替换为指定的片段,用法:th:replace="~{}"
- th:include (3.0 不推荐使用了),将宿主元素的内容改为指定片段中的内容。
- th:assert 是一个断言,如果给定的条件(多个条件用逗号分隔)没有返回 true,则抛出异常。
- th:remove,用来在解释时删除元素用,可选值为:
- all :删除所在的标签和所有子内容
- body:只删除子内容
- tag:只删除标签,保留子内容
- all-but-first:删除除了第一个子元素之外的其他子元素
- none:不做什么操作
片段的语法:
- ~{模板名::片段名},例如 ~{footer :: copy}
- ~{模板名::CSS选择器},例如 ~{footer :: #copy-section}
注意:
- !{...} 这个外包装符号是可以省略的
- 如果片段声明了参数,则 insert 或者是 replace 时,可以不指定参数名称按顺序传入参数,如果片段没有声明参数则需要指定参数名和值传入
模板可以接受的参数不只是字符串,数字,对象等,也可以是一个片段。如果传入的是一个片段,这个片段参数可以直接在 insert 和 replace 中作为片段使用,如果传入的片段是空内容标记(~{}),则表示为无内容,如果传入的是不操作标记下划线(_)则表示不做任何操作,保持原内容。insert 和 replace 的参数可以使用三目运算符作为条件动态的传入参数(或片段)。