当前位置: 首页 > 知识库问答 >
问题:

Spring thymeleaf页眉和页脚动态包括

徐卓
2023-03-14

我最近在Spring开始使用thymeleaf模板引擎。我想实现的是-如果我的控制器是这样的

@RequestMapping(value="/", method=RequestMethod.GET)
public String index() {
    return "homePage";
}
<div>This is home page content</div>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org" >
<head>
    <title>Spring MVC Example</title>
</head>
<body>
    <div th:include="fragments/header::head"></div>
    <div>This is home page content</div>
    <div th:include="fragments/footer::foot"></div>
</body>

我更喜欢把头部部分作为页眉片段,内容来自控制器,页脚来自页脚片段。

所以总的来说--我是如何做到这一点的:

/fragment/header.html

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org" >
<head>
    <title>Spring MVC Example</title>
</head>
<body>
<div>This is home page content</div>
  </body>
 </html>
  • http://www.thymeleaf.org/doc/articles/layouts.html
  • https://looksok.wordpress.com/2014/06/28/spring-website-layouts-ssi-with-thymeleaf-templates/
  • http://blog.codeleak.pl/2013/11/thymeleaf-template-layouts-in-spring.html

共有1个答案

房星光
2023-03-14

我就是这样做到的。

步骤1:创建默认布局文件

资源/模板/布局/default.html

<!DOCTYPE html>
<html>
<head th:replace="fragments/header :: head"></head>
<body>
   <div class="container">
     <div layout:fragment="content"></div>
     <div th:replace="fragments/footer :: footer"></div>
   </div>
</body>
</html>
<head th:fragment="head">
  <meta charset="utf-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
  <meta content="ie=edge" http-equiv="x-ua-compatible" />
  <title th:text="${metaTitle} ? ${metaTitle} : 'default title'"></title>
  <link rel="stylesheet" th:href="@{/css/bootstrap.min.css}"/>
  <link rel="stylesheet" href="/css/style.css"/>
</head>
<div class="footer text-center" th:fragment="footer">
  <p> <a href="#"> Terms of Use</a> | <a href="#">What's New</a> | <a href="#">Help</a> </p>
  <!-- javascripts -->
  <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js">
</script>
</div>
<!DOCTYPE html>
<html lang="en"
  xmlns:th="http://www.thymeleaf.org"
  xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
  layout:decorator="layouts/default">
 <body>
  <div id="page" layout:fragment="content">
  <div>This is home page content</div>
  </div>
 </body>
</html>

步骤4(Spring Boot 2):向pom.xml添加依赖项

/pom.xml

<dependency>
    <groupId>nz.net.ultraq.thymeleaf</groupId>
    <artifactId>thymeleaf-layout-dialect</artifactId>
</dependency>
 类似资料:
  • 也许以前有人问过这个问题,但我似乎找不到一个准确的答案或解决办法。我开始使用RecycerView,并使用LinearLayoutManager实现了它。现在,我想添加自定义的页眉和页脚项,这些项不同于RecycerView中的其他项。页眉和页脚不应该粘,我希望他们滚动与其余的项目。有人能指出一些例子如何做到这一点或只是分享想法。我会非常感激的。THX

  • 问题内容: 如何在我的PDF页面中添加 页眉 和 页脚 ?我想要一个表,表头中有3列,其他表中,页脚中有3列。我的页面可能是A3或A4,并且是横向或纵向。 谁能帮我?我在互联网上找不到很好的例子。 谢谢! mas正 问题答案: 创建一个MyPageEventListener类,该类扩展了 PdfPageEventHelper 将页面事件侦听器添加到PdfWriter对象 在MyPageEventL

  • 我正在用CSS来创建具有固定页眉和页脚以及可滚动内容的可滚动“窗口”。这里被接受的答案是我已经得出的最接近解决这个问题的答案,但这需要设置“内容”类div的高度。 我的目标是:1。如果内容小于机身高度,则不滚动2。如果内容长于正文高度减去页眉和页脚,则滚动。 如何实现这一点?

  • 问题内容: 我真的不喜欢在每个控制器中编写代码: 是否可以这样做,将自动包含页眉和页脚,如果需要更改它,我们也可以这样做吗?你怎么处理?还是您认为这不是问题?谢谢。 问题答案: 这是我的工作: 对于CI 3.x: 然后,在您的控制器中,这就是您要做的一切:

  • 问题内容: 我正在尝试创建一个包含三个div的页面:页眉,页脚和内容区域。这些应该占据屏幕的100%。 页眉和页脚很小,不会改变,内容区域可以是任何大小,因此我添加了使其变大时滚动的功能。 我正在使用以下CSS设置html和正文高度,因此容器上的技巧将起作用: 我的文档结构为: 问题答案: 方法1-Flexbox 它适用于已知和未知的高度元素。确保设置外股利和重置默认的。 方法2-CSS表 对于已

  • 我将页眉和页脚设置为Position:Fixed。但如果是可滚动的内容,则文本将转到页眉/页脚区域:下面是我的完整代码:http://jsfidle.net/kaqz1km2/6/ 在这种情况下,我不想使用background-image或background-color。 下面是CSS: null null