模版引擎是爲了讓數據與界面相互分離而出現的工具,使用模版引擎進行開發,可以提升相應的開發效率,同時對代碼複用率的提高效果也很是顯著。通常來講,模版引擎有本身相應的標記語言。模版引擎會解析相應的標記語言,而後將數據渲染進生成的html頁面之中。css
模版文件 + 渲染的數據 = 最終頁面內容html
-resources --static ----css ----js ----script ----...... --templates ----*.html
<div class="profile-info-value"> <span th:text="${user.getSex() != null} ? ${user.getSex().getValue()} : '暫未設置'">Sex</span> </div> <!-- 該段內容爲user-center頁面中的相關內容,從後端獲取到user對象後,經過調用user對象的方法,判斷若是不爲null,則顯示user.getSex().getValue()的內容,不然則會顯示暫未設置的內容 --> <tbody> <tr th:each="rept : ${reportTemplates}"> <td class="center aligned" th:text="${rept.getExperiment_id()}">Experiment ID</td> <td class="center aligned" th:text="${rept.getExperiment_name()}">Experiment Name</td> <td class="center aligned"> <div class="ui buttons mini" th:id="${'experiment-data-' + rept.getExperiment_id()}" th:attr=" data-prepare-pdf=${rept.getPrepare_link()}, data-experiment-id=${rept.getExperiment_id()}, data-db-id=${rept.getId()}"> <button class="ui green basic button btn-view-pdf" style="padding: .45em .8em">查看文檔</button> <button class="ui blue basic button btn-input-data" style="padding: .45em .8em">錄入數據</button> <button class="ui red basic button disabled btn-gen-report" style="padding: .45em .8em">生成報告</button> </div> </td> </tr> </tbody> <!-- 該段代碼在thymeleaf中屬於相應的循環標記,後端傳入的reportTemplates屬於相應的Collections類,經過thymeleaf的each標記語句能夠對集合類的內容進行遍歷,經過該段代碼能夠生成全部實驗報告操做欄和展現欄。 -->
<!-- 在html開頭聲明時,加入layout:decorator="base"來導入相應的base頁面 --> <html xmlns:th="http://www.thymeleaf.org" xmlns:layout="http://www.w3.org/1999/xhtml" layout:decorator="base">
<!-- 重寫該塊相關內容來進行展現 --> <th:block layout:fragment="content"> .... ..... ..... .... </th:block>