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

使用片段时Thymeleaf PDF模板解析错误

谭越
2023-03-14

我试图在我的PDF模板中包含一个字母头,如下所示:

片断/header.html

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Header</title>
</head>
<body>
<div id="header" class="clearfix" th:fragement="header(sender, name, address1, address2, today)">
    <div id="header-left">
        <img class="logo" src="app/src/main/resources/template/pdf/assets/logo.png"/>
        <div id="recipient">
            <p th:object="${sender}"><span th:text="*{name}"></span> - <span th:text="*{address1short}"></span> - <span th:text="*{address2}"></span></p>
            <p th:text="${name}"></p>
            <p>
                <span th:text="${address1}"></span><br/>
                <span th:text="${address2}"></span>
            </p>
        </div>
    </div>
    <div id="header-right" th:object="${sender}">
        <p><strong th:text="*{name}"></strong></p>
        <p>
            <span th:text="*{address1}"></span><br />
            <span th:text="*{address2}"></span><br />
            <span class="label" th:text="*{phoneLabel} + ':'"></span><span th:text="*{phone}"></span><br />
            <span class="label" th:text="*{faxLabel} + ':'"></span><span th:text="*{fax}"></span><br />
            <span class="label" th:text="*{emailLabel} + ':'"></span><span th:text="*{email}"></span><br />
            <strong><span th:text="*{internetLabel}"></span>: <span th:text="*{internet}"></span></strong>
        </p>
        <p>
            <span th:text="*{court}"></span><br />
            <span th:text="*{registryNr}"></span><br />
            <span th:text="*{directorLabel}"></span>: <span th:text="*{director}"></span><br />
            <span th:text="*{vatId}"></span><br />
        </p>
        <p><span th:text="*{todayPrefix}"></span> <span th:text="${today}"></span></p>
    </div>
</div>
</body>
</html>

template.html

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8"/>
    <title>Template</title>
    <link rel="stylesheet" type="text/css" media="all" href="app/src/main/resources/template/pdf/assets/style.css"/>
</head>
<body>
<div th:replace="app/src/main/resources/template/pdf/fragments/header :: header(${sender}, ${name}, ${address1}, ${address2}, ${today})"></div>

<!-- omitted for brevity -->

</body>
</html>

html位于app/src/main/resources/template/pdf/文件夹中。我必须包括css和图像文件与完整的路径(从项目的根),以使它们工作。我尝试包含完整路径的片段(如上),只包含片段/头,但每次都得到相同的错误。

我正在使用

  • Spring-Boot-Starter-Thymeleaf 2.1.1
  • 沉香乐芙3.0.11

StackTrace:[移除字符限制的bc值]

共有1个答案

莫英卓
2023-03-14

片段引用不应该是项目的绝对引用,而是相对于thymeleaf模板根的引用。所以(假设您的thymeleaf模板的位置是app/src/main/resources/template/)

th:replace="app/src/main/resources/template/pdf/fragments/header ..."

使用

th:replace="pdf/fragments/header ..."
 类似资料:
  • 下面是index.html 它们在不同的文件夹中,但pathing应该工作,除非我只是错过了一些真正愚蠢的东西。

  • 我正在实现密码重置功能。为了显示具有这种功能的网页,我使用了百里香。但是当我调用我的简单的demo.html页面(见下面的代码)时,它抛出以下错误: 出现意外错误(类型 = 内部服务器错误,状态 = 500)。 异常解析文档:模板=“演示”,第 10 行 - 列 豆配置: 演示. html: 控制器: 我错过了什么?

  • 我正在创建一个表单提交使用Spring靴蒂梅利夫。我是Spring启动应用程序的初学者,当我运行应用程序时,我得到的错误是模板解析完整错误堆栈跟踪期间发生的错误,我在下面写的。 我尝试了什么,所以我附在下面。我在上面附上的所有堆栈跟踪错误 学生管理员 Student.java index.html 主要 ** ** 注册_成功. html

  • 我尝试使用ThymeLeaf处理模板,但我得到。 这是我的代码: 我试图通过添加这样的前缀来更改路径,但它没有帮助: 此错误可能是由路径问题以外的其他原因引起的吗? 如果需要,我可以给我的项目结构的更多细节。 谢谢 编辑: 这是堆栈跟踪,它可能会有所帮助:

  • 我使用SpringBoot和mySql数据库。 我正在尝试筛选搜索通过一个表格的团队。最初,这个表是一个thymeleaf表(参见我的相关SO问题),但在用尽了互联网上所有可用的资源后,我决定以不同的方式实现搜索,但没有成功。 我发现了一个非常有用的网站,它有一个实用的,相关的例子,我想要实现什么。 解析模板“索引”时出错,模板可能不存在,或者任何已配置的模板解析程序都无法访问 Thymeleaf

  • 所以,我看到在Stackoverflow中都能回答这个问题,但对我没有任何帮助。(SpringMVC+Thymeleaf,错误消息是:模板可能不存在,或者任何已配置的模板解析程序都无法访问