sva*_*605 3 html thymeleaf spring-boot
默认情况下,Thymeleaf需要将所有html文件都存在于scr / main / java / resources / templates中。为了避免在template文件夹中造成混乱,我需要在此处创建不同的子滑块。问题在于放置在那里的html文件永远都不会得到解决。示例如下。
结构体:
IndexController:
@Controller
public class IndexController {
@GetMapping(value = "/")
public String index() {
return "index";
}
}
Run Code Online (Sandbox Code Playgroud)
默认模板:
<!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>
Run Code Online (Sandbox Code Playgroud)
指数:
<!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>
Run Code Online (Sandbox Code Playgroud)
子文件夹中的页面:
<!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>
Run Code Online (Sandbox Code Playgroud)
当我打开索引页面并单击指向page.html的链接时,得到以下信息:
我做错了什么?
您没有/subfolder/page.html的控制器映射,这不是Thymeleaf和Spring的工作方式。
您不能轻易地引用纯HTML文件,因为它们在技术上没有存储在其中。您必须引用在Spring中定义的端点,然后将选择要呈现的HTML文件,如下所示:
@Controller
public class IndexController {
@GetMapping(value = "/subfolder/page")
public String index() {
return "subfolder/page";
}
}
Run Code Online (Sandbox Code Playgroud)
并按以下方式创建您的链接:
<a href="subfolder/page">Page</a>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2275 次 |
| 最近记录: |