theamleaf 模板装饰器
index.html
<!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org" layout:decorator="layout/main"> <head> <title>首页</title> </head> <body> <div layout:fragment="content"> 首页维护中 </div> </body> </html>注解:index.html 用main.html布局装饰
main.html
<!DOCTYPE html> <html lang="en" xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="UTF-8"/> <title layout:title-pattern="$DECORATOR_TITLE - $CONTENT_TITLE">数据中心</title> <link rel="stylesheet" href="../css/iconfont/iconfont.css" data-th-href="@{/css/iconfont/iconfont.css}"/> <link href="../css/reset.css" rel="stylesheet" data-th-href="@{/css/reset.css}" /> <link href="../css/global.css" rel="stylesheet" data-th-href="@{/css/global.css}" /> <link href="../css/theme/theme-3.css" rel="stylesheet" data-th-href="@{/css/theme/theme-3.css}"/> <link href="../css/jquery.bxslider.css" rel="stylesheet" data-th-href="@{/css/jquery.bxslider.css}"/> <script type="text/javascript" src="../../static/js/libs/jquery.js" data-th-src="@{/js/libs/jquery-3.0.0.min.js}"></script> <script type="text/javascript" src="../../static/js/libs/jquery.bxslider.js" data-th-src="@{/js/libs/jquery.bxslider.js}"></script> </head> <body> <header class="header" data-th-include="fragment/header::header"></header> <article class="main"> <main class="center-panel" layout:fragment="content"> </main> </article> <footer class="foot" data-th-include="fragment/footer::footer"> </footer> <script type="text/javascript" src="../../static/js/thymeleaf/index.js" data-th-src="@{/js/thymeleaf/index.js}"></script> </body> </html>其中,
<title layout:title-pattern="$DECORATOR_TITLE - $CONTENT_TITLE">数据中心</title>
页面title会结合index与mian的title
<main class="center-panel" layout:fragment="content"> </main>main.html中的content部分会被index.html中被定义layout:fragement替换掉
指令:
layout:decorator="layout/main"装饰器:用layout下面的main.html装饰此页面
layout:fragment="content"
要替换的内容区域
***
其他部分的内容合并
(注意,合并并不是有则覆盖原则,只会重复添加引用)