Thymeleaf Literal正在作为片段参考进行处理

时间:2019-07-06 01:21:51

标签: spring spring-mvc thymeleaf

我正在尝试使用片段设置页面,并且在文字方面遇到麻烦。

index.html模板

<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head th:replace="~{main_components::common_header('Home Page',_)}">
</head>
<body>
<p>Get your greeting <a href="/greeting">here</a></p>

<div th:insert="~{main_components::footer}"></div>
</body>
</html>

主要组件模板:

<!DOCTYPE html>

<html xmlns:th="http://www.thymeleaf.org">

<head th:fragment="common_header(title,links)" >

    <title th:replace="${title}">The awesome application</title>

    <!-- Common styles and scripts -->
    <link rel="stylesheet" type="text/css" media="all" th:href="@{/css/awesomeapp.css}">
    <link rel="shortcut icon" th:href="@{/images/favicon.ico}">
    <script type="text/javascript" th:src="@{/sh/scripts/codebase.js}"></script>

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

</head>

<body>

<div th:fragment="footer">
    &copy; 2019 EBP :)
</div>

</body>

</html>

这里的问题是文字'Home Page'似乎被视为对另一个片段的引用,从而在尝试访问index时导致以下错误:

org.thymeleaf.exceptions.TemplateInputException: Error resolving template [Home Page], template might not exist or might not be accessible by any of the configured Template Resolvers (template: "main_components" - line 7, col 12)

我目前基于This Spring MVC Tutorial使用非常基本的设置。我该怎么做才能使文字作为参数正确传递?

1 个答案:

答案 0 :(得分:0)

想通了...

th:replace旨在替换整个标签,这将在寻找替换它的内容。我将其切换为使用th:text,它具有理想的效果。