gpt4 book ai didi

java - 迁移到 Thymeleaf 3 后,Thymeleaf 停止解析布局模板

转载 作者:搜寻专家 更新时间:2023-11-01 02:36:30 26 4
gpt4 key购买 nike

我有一个版本为 1.5.7 的简单 Spring Boot 应用程序,我正在尝试将其迁移到版本 2.0.0。我快完成了,但还缺少最后一 block ,那就是 Thymeleaf。

在旧版本中一切正常,但在迁移之后,Spring Boot 停止解析任何模板(页面和电子邮件)。

我有所有模板src/main/resources/templates。另外,我在 src/main/resources/templates/layout 中有一个名为 default 的布局,如下所示:

<!DOCTYPE html>
<html>
<head th:replace="fragments/header :: head"></head>
<body>

<div id="page">
<nav class="navigation" th:replace="fragments/navigation"></nav>

<div class="container">
<div layout:fragment="container"></div>
</div>
</div>
</body>
</html>

我的页面链接到这样的布局:

<!DOCTYPE html>
<html lang="en"
xmlns:th="http://www.thymeleaf.org"
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
layout:decorate="layout/default">

<body>

<div layout:fragment="container">
...
</body>
</html>

src/main/resources/templeats/fragments 中本地化的导航片段

在 Spring Boot 2 中,呈现登录页面但未应用布局(因此缺少导航栏和样式)。 2.0.0 版有什么变化吗?我没有在官方文档或迁移指南中找到任何解决方案。

编辑:正如答案中所建议的那样,这是由迁移到 Thymeleaf 3 引起的。我用一些反射(reflect)迁移指南的更改更新了我的问题,但代码仍然没有注入(inject)布局。

我也尝试过 layout:data-layout-decorate=~{layout/default} 和 layout:data-layout-decorate=~{layout/default.html}

我通过手动添加 thymeleaf 方言依赖使其工作:

compile('nz.net.ultraq.thymeleaf:thymeleaf-layout-dialect')

但我认为这应该是 Spring 中已经存在的传递依赖,我不应该手动添加它......

最佳答案

谢谢 Smajl,添加

<dependency>
<groupId> nz.net.ultraq.thymeleaf</groupId>
<artifactId>thymeleaf-layout-dialect</artifactId>
</dependency>

也为我解决了这个问题。

关于java - 迁移到 Thymeleaf 3 后,Thymeleaf 停止解析布局模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49231742/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com