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

百里香中的标题和头衔

东方和惬
2023-03-14

我是百里香的初学者。我从一个常见的布局页面开始:

碎片/布局。html

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head th:fragment="headerFragment">
    <title>Template title</title>
    <!-- metas, link and scripts -->
</head>
<body>
<div class="container">
    Some text
</div>
</body>
</html>

和一个内容页面:

页html

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head th:include="fragments/layout :: headerFragment">
    <title>Page title</title>
    <!-- metas, link and scripts -->
</head>
<body>
<div class="container">
    Some text
</div>
</body>
</html>

当我渲染页面时,标题总是来自模板,而不是页面。在Thymeleaf中,是否有可能具有共同的元、脚本和样式(在HEAD标签中),但具有每页标题?

共有3个答案

姚俊材
2023-03-14

签出可参数化的片段签名。

基本上,在你的片段中:

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head th:fragment="headerFragment (pageTitle)">
    <title th:text="${pageTitle}>Template title</title>
    <!-- metas, link and scripts -->
</head>
<body>
    <div class="container">
        Some text
    </div>
</body>
</html>

然后,在您使用它的地方:

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head th:replace="fragments/layout :: headerFragment (pageTitle='Bla Bla Some Title'">
    <title>Page title</title>
    <!-- metas, link and scripts -->
</head>
<body>
    <div class="container">
        Some text
    </div>
</body>
</html>
惠翰藻
2023-03-14

这是我找到的最佳解决方案:

  1. 创建块片段
<th:block th:fragment="header">

    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" charset="UTF-8"/>
    <meta name="_csrf" th:content="${_csrf.token}"/>
    <meta name="_csrf_header" th:content="${_csrf.headerName}"/>
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"/>

    <!-- Bootstrap Css -->
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css"
          integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous"/>

    <!-- Fontawesome css -->
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"/>

    <!-- JQuery -->
    <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>

</th:block>
姚俊材
2023-03-14

我也有这个问题(谢谢nmy引用留档!)这是我注意到的以及我如何在我的应用程序中解决它:

文档中需要注意的事项:

  1. th之间的区别:包含th:替换
  2. 通过domselector引用片段而不是通过th: fraank
  3. Thymeleaf提供了一个“this”选项来查找选择器

考虑到这三件事,您可以执行以下操作:

碎片/layout.html:

<head th:fragment="headerFragment">
    <title th:include=":: #pageTitle">Layout Generic Title< /title>
    <!-- metas, link and scripts -->
</head>

页html

<head th:include="fragments/layout :: headerFragment">
    <title id="pageTitle">Page title</title>
    <!-- other elements you want to reference in your layout -->
</head>

希望这有帮助!

 类似资料:
  • 我想在胸腺方言中使用胸腺方言,但不能。我尝试过这个,但效果不佳: of删除里面的所有内容。我想在渲染后得到这样的东西: 那么,我该如何实现我的目标呢?

  • 大家好,我对thymeleaf和我的静态html页面有一个问题。更具体地说,我有一个spring mvc web应用程序,我也在使用spring security,在我的登录页面中,我想使用thymeleaf,这样spring security可以与另一端的客户端层通信吗?我不想在我的所有html页面中包括thymeleaf,因为我将使用AngularJs 我尝试将登录名放在templates文件

  • 使用SpringMVC+Thymeleaf,如何将基于整数的模型属性绑定到使用th:value或th:field的表单中的输入字段,而字段本身不显示值“0”。

  • 我使用Spring的引导2.6.3和我试图使用thymeleaf最近得到一个与html的确认消息后,我通过邮件确认我的帐户(我只是使用确认邮件来验证新帐户),所以我看了一些关于thymeleaf的视频,我标记所有的视频都有一个名为模板的文件夹和静态在src/main/ressource和我没有他们,所以我创建了一个名为模板的文件夹,在文件夹中我创建了一个html文件只是为了尝试它,如果它(html

  • 你好,我正在使用Spring boot 2.4. x,我想使用thymeleaf作为我的模板引擎。 我已经添加了百里香,并进行了以下测试 但模板引擎不替换变量,并且已处理的模板变量的值与输入字符串相同。 我有什么错?谢谢你

  • 我不明白,如果html模板与我在ModelAndView中获得的属性链接,如何将RESTFull服务的@Controller更改为@RestController 在胸腺叶模板中 但我想进入索引页面,在后台获取用户名 我可以使用ajax来更新标记“p”,但这样使用thymeleaf并没有什么好处,我可以使用jsp。那么,在Rest时使用thymeleaf的最佳方式是什么?它是否合理?