默认情况下,Thymeleaf需要所有HTML文件都存在于scr / main / java / resources / templates中。为了不在模板文件夹中创建混乱,我需要在此处创建不同的子滑块。问题是放置在那里的html文件永远都不会得到解决。示例如下。
结构体:
IndexController:
@Controller
public class IndexController {
@GetMapping(value = "/")
public String index() {
return "index";
}
}
默认模板:
<!DOCTYPE html>
<html lang="en"
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout">
<head>
<meta charset="UTF-8"/>
<title>Default template</title>
</head>
<body>
<section id="site-content" layout:fragment="content"></section>
</body>
</html>
指数:
<!DOCTYPE html>
<html lang="en"
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
layout:decorator="default">
<head>
<meta charset="UTF-8"/>
<title>Index</title>
</head>
<body>
<div layout:fragment="content">
<div>
This is index page
</div>
<a href="subfolder/page.html">Page</a>
</div>
</body>
</html>
子文件夹中的页面:
<!DOCTYPE html>
<html lang="en"
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
layout:decorator="default">
<head>
<meta charset="UTF-8">
<title>Page</title>
</head>
<body>
<div layout:fragment="content">
This is a page in the subfolder
</div>
</body>
</html>
当我打开索引页面并单击指向page.html的链接时,得到以下信息:
我做错了什么?
您没有/subfolder/page.html的控制器映射,这不是Thymeleaf和Spring的工作方式。
您不能轻易地引用纯HTML文件,因为它们在技术上并未存储在其中。您必须引用在Spring中定义的端点,然后将选择要呈现的HTML文件,如下所示:
@Controller
public class IndexController {
@GetMapping(value = "/subfolder/page")
public String index() {
return "subfolder/page";
}
}
并按以下方式创建链接:
<a href="subfolder/page">Page</a>
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句