th:include 传入参数
时间: 2024-10-08 15:12:19 浏览: 56
`th:include` 是Thymeleaf模板引擎中的指令,用于动态地插入另一个模板的部分内容。它并不像传统HTML标签那样直接传递数据,而是通常用于条件展示或者引用共享组件。当你想要在当前模板中包含另一个模板的一部分时,可以在`th:include`标签里指定要引入的模板文件路径,例如:
```html
<th:block th:include="fragments/footer :: footer"></th:block>
```
在这个例子中,`fragments/footer`是你希望插入的内容所在的文件夹,`footer`则是文件中需要被包括的部分名。这里的双冒号 `::` 是Thymeleaf特有的语法,`footer` 后面可以跟随一个属性值,如果有的话,这个属性值会被作为参数传递给被包含的模板。
然而,`th:include`本身并不接受传递参数。如果你需要传递数据到被包含的模板,你应该在外部模板中创建一个模型(model object),然后在`th:include`之前设置这些数据,再通过`th:with`指令将数据绑定到模板上。比如:
```html
<div th:with="message='Hello from parent template!'">
<th:block th:include="fragments/footer :: footer(${message})"></th:block>
</div>
```
在这里,`${message}` 就是一个传入的参数,它会被传递给 `footer` 模板中的同名变量。
相关问题
thymeleaf th:include 引入片段时如何传入参数
Thymeleaf模板引擎中的`th:include`标签用于引入其他HTML片段或模板文件,并可以传递参数。要在`th:include`中传入参数,你需要在包含标签内设置`th:with`属性,并将参数名称和值用等号连接起来。例如:
```html
<!-- 主体模板 -->
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>主页面</title>
</head>
<body>
<!-- 包含的片段 -->
<div id="content" th:include="fragments::partial (paramName='value')"></div>
</body>
</html>
<!-- fragments/partial.html -->
<!DOCTYPE html>
<html>
<head>
<title th:text="${paramName}">默认标题</title>
</head>
<body>
这里是包含的部分,参数名为: ${paramName}
</body>
</html>
```
在这个例子中,`th:include`指令会把`fragments/partial.html`中的内容插入到`#content`元素处,同时传递参数`paramName`的值给`partial.html`中的`th:text`和`${paramName}`表达式。
th:include thymeleaf 2.3.0 引入碎片并传入参数
`th:include` 是Thymeleaf模板引擎中的一个指令,用于引入其他HTML片段或模板文件,通常被称为“碎片”(Fragment)。在Thymeleaf 2.3.0版本及以后,你可以通过这个标签动态地插入内容到当前页面中,这在构建复杂的Web应用时非常有用,可以保持代码结构清晰。
使用`th:include` 的基本语法如下:
```html
<th:block th:include="partialFileName::partialTemplateName [param1='value1', param2='value2']"></th:block>
```
这里:
- `partialFileName` 是你要包含的碎片文件的相对路径(相对于模板文件的位置)。
- `partialTemplateName` 是你在碎片文件中定义的命名空间和片段名,`::` 用于分割。
- `[param1='value1', param2='value2']` 是传递给碎片的参数,它们作为key-value对的形式提供,并可以在接收端通过`th:with`指令获取。
例如,假设你有一个名为`shared/_footer.html`的碎片,你可以在主模板中这样引用它并传递日期参数:
```html
<th:block th:include="'shared/footer' :: footer (currentDate='#{now}')"></th:block>
```
在`_footer.html`中,你可以使用如下的方式获取并显示这个参数:
```html
<footer th:if="${currentDate}">
<p>Today's date is: <span th:text="${currentDate}"></span></p>
</footer>
```
阅读全文