thymeleaf th:include 引入碎片 带参数
时间: 2024-10-08 20:11:22 浏览: 33
Thymeleaf是一个强大的模板引擎,用于Spring框架中动态地渲染Web页面。`th:include`标签是Thymeleaf中的一个特性,它允许你在页面上引入其他片段(也称为模板、partial或snippet),并可以传递参数给这些片段。
语法如下:
```html
<th:include src="@{yourFragmentUrl}" [param1="value1" param2="value2"] />
```
`src` 属性指定了要引入的片段文件路径,通常使用表达式(如`${}` 或 `@{}`)引用,可以根据实际应用的URL结构动态确定。方括号 `[]` 内的 `param1`, `param2` 等则是传递给片段的参数,它们会被片段接收到并在其中使用。
例如,如果你有一个名为`shared/footer.html` 的片段,包含一个表单,你可以这样引入,并传递用户ID作为参数:
```html
<th:include src="'/includes/footer.html'" th:param="'userId=${user.id}'"/>
```
在这个例子中,`footer.html` 就会接收 `userId` 参数,并可能根据这个值定制内容。
相关问题
2.3.0 thymeleaf th:include 引入碎片 带参数
Thymeleaf是一个强大的模板引擎,特别适合于Spring MVC项目中使用。`th:include`标签用于在当前模板中引入另一个模板(也称为“碎片”或“partial view”),并且可以传递参数到被包含的模板。
在2.3.0版本的Thymeleaf中,使用`th:include`的基本语法如下:
```html
<th:block th:include="relative/path/to/fragment :: [optional]attributeName=value">
<!-- 这里放置要被包含的内容 -->
</th:block>
```
这里的参数是在`::`之后的部分,`attributeName`是你自定义的参数名,`value`则是你要传入的实际值。例如,如果你想在被包含的模板中使用名为`user`的对象,你可以这样做:
```html
<!-- 主模板 -->
<th:block th:include="fragments/user-profile :: user=${user}"></th:block>
<!-- fragment文件 (user-profile.html) -->
<div th:if="${user}">
<h2>User Profile</h2>
<p>Name: ${user.name}</p>
<p>Email: ${user.email}</p>
</div>
```
在这个例子中,`user-profile.html`会接收到`user`参数,并可以根据这个参数显示用户信息。
thymeleaf2.3.0版本 th:include 引入碎片 带参数 举个实例
Thymeleaf 2.3.0 版本中,`th:include` 功能用于引入模板片段(也称为“碎片”),并可以传递参数。这通常在需要复用某个部分,如头部、导航栏或页脚,并对其进行动态定制的时候非常有用。下面是一个简单的例子:
假设有一个公共的 `header.html` 片段,我们想在每个页面上都包含它,但是标题可以根据页面内容动态改变:
```html
<!-- header.html -->
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title th:text="${pageTitle}">默认标题</title>
</head>
<body>
<header>
<!-- 页面头部内容 -->
</header>
</body>
</html>
```
在主页面(如 `index.html`)中引入这个头文件并传入参数:
```html
<!-- index.html -->
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Thymeleaf 示例</title>
</head>
<body>
<div th:replace="fragments/header :: header(title='主页')"></div>
<!-- 主体内容 -->
</body>
</html>
```
在这个例子中,`th:replace` 指令告诉 Thymeleaf 从 `header.html` 中替换指定的标签 (`header(title='主页')`)。`title` 参数会被传给 `header.html` 中的 `th:text` 属性,从而动态设置标题。
阅读全文