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 的參數可以使用三目運算符作為條件動態的傳入參數(或片段)。
?
?
?
?
?
?