在Thymeleaf扩展片段

时间:2017-10-28 15:34:34

标签: spring-boot thymeleaf

我有以下片段。我正在尝试使用打开的图形标记扩展基本片段“head”...但是渲染的页面只包含片段/头部的标记,以及og的标记。

如何为片段添加更多标签?

<head th:include="fragments/head :: head">
    <!-- You can use Open Graph tags -->
    <meta property="og:url"         th:content="${url}" />
    <meta property="og:type"          content="website" />
    <meta property="og:title"         content="GUApp" />
    <meta property="og:description" th:content="${description}" />
    <!--<meta property="og:image"         content="http://www.your-domain.com/path/image.jpg" />-->
</head>

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

1 个答案:

答案 0 :(得分:1)

最简单的选择是传递Flexible layouts文档演示中的其他标记。

  

感谢片段表达式,我们可以为其指定参数   片段不是文本,数字,bean对象......而是   标记片段。

     

这允许我们以他们可以的方式创建我们的片段   丰富了来自调用模板的标记,从而产生了一个   非常灵活的模板布局机制。

<强>的index.html

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.w3.org/1999/xhtml">

    <head th:include="header :: head(~{::meta})">
        <!-- You can use Open Graph tags -->
        <meta property="og:url" th:content="${url}"/>
        <meta property="og:type" content="website"/>
        <meta property="og:title" content="GUApp"/>
        <meta property="og:description" th:content="${description}"/>
    </head>

...

<强> header.html中

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.w3.org/1999/xhtml">

    <head th:fragment="head(meta)">
        <!-- some default styles -->
        <link href="base.css" rel="stylesheet" />

        <!--/* Per-page placeholder for additional meta tags */-->
        <th:block th:replace="${meta}" />
    </head>

...

结果html:

<!DOCTYPE html>
<html lang="en">
<head>
    <link href="base.css" rel="stylesheet" />
    <meta property="og:url"/>
    <meta property="og:type" content="website"/>
    <meta property="og:title" content="GUApp"/>
    <meta property="og:description"/>
</head>

...