使用布局

我们最后想实现的就是将 UI 中可重用的代码块放到模板之中。为了实现该功能,我们 需要使用 thymeleaf-layout-dialect 依赖,它已经包含在项目的 spring-boot-starter-thymeleaf 依赖里面。 

我们会创建一个新的文件,名为 default.html,并将其放在 src/main/resources/templates/ layout 之中,它包含了每个页面中都重复出现的代码: 

<!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"   xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"> <head>   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>   <meta name="viewport" content="width=device-width, initial- scale=1, maximum-scale=1.0, user-scalable=no"/>  <title>Default title</title> 
  <link href="/webjars/materializecss/0.96.0/css/materialize.css" type="text/css" rel="stylesheet" media="screen,projection"/> </head> <body> <section layout:fragment="content">   <p>Page content goes here</p> </section> 
<script src="/webjars/jquery/2.1.4/jquery.js"></script> <script src="/webjars/materializecss/0.96.0/js/materialize.js"></ script> </body> </html>

现在,我们要修改 resultPage.html 文件,让它使用布局,这会简化它的内容: 

<!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"  xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"   layout:decorator="layout/default"> <head lang="en">   <title>Hello twitter</title> </head> <body> <div class="row" layout:fragment="content"> 
  <h2 class="indigo-text center" th:text="|Tweet results for ${search}|">Tweets</h2> 
 <ul class="collection"> 
 <li class="collection-item avatar" th:each="tweet : ${tweets}"> 
  <img th:src="${tweet.user.profileImageUrl}" alt="" class="circle"/>   <span class="title" th:text="${tweet.user. name}">Username</span> 
 <p th:text="${tweet.text}">Tweet message</p>  </li>   </ul> </div> </body> </html> 

其中,layout:decorator="layout/default"能够表明去哪里查找布局。这样,我们可以将内 容注入到布局的不同 layout:fragment 区域中。需要注意的是,每个模板都是合法的 HTML 文件,我们可以非常容易地重写它的标题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值