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

Thymeleaf布局方言和th:replace在标题中导致标题为空

穆智刚
2023-03-14

我遵循这个教程:http://www.thymeleaf.org/doc/layouts.html(到了胸腺布局方言部分)。在那里你可以找到一个例子:

<!DOCTYPE html>
<html>
  <head>
  <!--/*  Each token will be replaced by their respective titles in the resulting page. */-->
    <title layout:title-pattern="$DECORATOR_TITLE - $CONTENT_TITLE">Task List</title>
    ...
  </head>
  <body>
    <!--/* Standard layout can be mixed with Layout Dialect */-->
    <div th:replace="fragments/header :: header">
    ...
    </div>
    <div class="container">
      <div layout:fragment="content">
      ...
      </div>
      <div th:replace="fragments/footer :: footer">&copy; 2014 The Static Templates</div>
    </div>
  </body>
</html>

在上述示例中,页脚和页眉由th:replace标记替换,而

基本上,我想替换整个

我的布局文件:

<!DOCTYPE html>
<html>
<head th:replace="/html/components/head :: head">
</head>
<body>
     <div layout:fragment="content">
     </div>
...
     <div th:replace="/html/components/footer :: footer" />
</body>
<html>

我的内容文件:

<!DOCTYPE html>
<html layout:decorator="/html/layouts/layout">
<head>
    <title>My content title</title>
</head>
<body>
      <div layout:fragment="content">
      ...
      </div>
</body>
</html>

最后是我的 /html/components/head.htm文件:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
  xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout">
<head th:fragment="head">
<meta charset="utf-8" />
<title layout:title-pattern="$CONTENT_TITLE">Layout Title should be replaced by Content Title!</title>
...
</head>
<body>
</body>
</html>

内容是好的。页脚和页眉按预期从文件中包括(替换),但页面标题为空!

我得到:

<!DOCTYPE html>
<head>
<meta charset="utf-8" />
<title></title>
...

怎么了?


共有3个答案

衡修洁
2023-03-14

您可以更换整个头标签。

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head lang="pl" th:replace="fragments/head :: head">
</head>
<body>
 ...
</body>
</html>

资源/模板/片段/标题。html:

    <head lang="pl">
        <title>Title</title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
        <link href="http://cdn.jsdelivr.net/webjars/bootstrap/3.3.5/css/bootstrap.min.css"
              th:href="@{/webjars/bootstrap/3.3.5/css/bootstrap.min.css}"
              rel="stylesheet" media="screen" />

        <script src="http://cdn.jsdelivr.net/webjars/jquery/2.1.4/jquery.min.js"
                th:src="@{/webjars/jquery/2.1.4/jquery.min.js}"></script>
        <link href="../static/css/mycss.css"
              th:href="@{css/mycss.css}" rel="stylesheet" media="screen"/>
    </head>
微生旻
2023-03-14

我想我找到了一个稍微不那么冗长的方法来使用th:替换th:片段在一起,例如包含公共的

th:remove=“tag”放在片段定义中,这样就不必每次都重复th:remove=“tag”

你的头。html

<thymeleaf xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org" 
    th:fragment="head" th:remove="tag">

    <meta charset="utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <link rel="stylesheet" th:href="@{/css/vendor/bootstrap.min.css}"/>

</thymeleaf>

我的页面。html

<head>
    <thymeleaf th:replace="fragment_head :: head" />
</head>

邵飞鸿
2023-03-14

最后,我找到了一种实现我想要的东西的方法。

在布局文件

<head>
  <title layout:title-pattern="$CONTENT_TITLE">Layout Title will be replaced by Page Title!</title>
  <object th:include="/html/components/head :: head" th:remove="tag" />
</head>

在我的html/组件/head.htm文件中,我必须删除

<head th:fragment="head">
  <meta charset="utf-8" />
  <!-- NO TITLE TAG HERE -->
  ...
</head>

通过这种方式,头部片段包含在中。

<head>
  <title>My content title</title>
  <meta charset="utf-8" />
  <!--  NO TITLE TAG HERE -->
  ...
</head>

显然,我没有删除标题标签这里的消息太,一旦我得到它的工作。

 类似资料:
  • 如何设置标题和子标题在折叠工具栏布局在Android像whatsapp配置文件视图。 我已经附上了相同的屏幕截图样本。

  • [更新] 我通过添加addHeaderView解决了这个问题: ================================ 我的问题就是这么简单! 我想知道如何在导航抽屉中添加标题? 我已经为每个项目创建了带有列表视图(图标文本)的导航抽屉。 非常感谢,

  • 主要内容:1. 什么是标准方言?,2. 标准表达式语法,2.7 表达式预处理,3. 基本的属性本节将带您了解一些最重要的概念,以了解以标准或SpringStandard方言编写的Thymeleaf模板。 1. 什么是标准方言? Thymeleaf是非常非常可扩展的,它允许自定义的名字来定义一组模板属性(或者甚至是标签),用自定语法评估计算表达式和应用逻辑。它更像是一个模板引擎框架。 它还带有一些称为标准方言(称为Standard和SpringStandard)的东西,它们定义了一组功能,这

  • 我想这样做,但与折叠工具栏布局或滚动后在工具栏中显示徽标和标题。 请帮助我

  • 我正在试着检查用户是在Iphone上还是在Android上 当我注释这行代码时,应用程序运行良好

  • 我正在尝试创建一个具有一些标签和UITableView的视图。首先,我尝试创建UIView= 滚动工作正常,但现在我有自动布局的问题。 标题视图有2个标签。“LeftLabel”和“RightLabel”。RightLabel应该具有动态高度和 在代码中,我试图添加一个不适合1行的文本,而autolaout标签应该扩展并使用2到3行来适应文本。 我把演示项目上传到了github:https://g