thymeleaf model数据共享
时间: 2023-07-14 21:06:28 浏览: 119
Thymeleaf提供了多种方式来实现模型数据的共享。以下是几种常见的方法:
1. 上下文变量:可以使用`th:object`或`th:with`指令将对象设置为上下文变量,然后在整个模板中共享该对象。
```html
<div th:object="${user}">
<p th:text="${user.name}"></p>
<p th:text="${user.age}"></p>
</div>
```
2. 模板片段:可以创建一个模板片段,将需要共享的数据放在该片段中,然后在其他模板中引用该片段。
```html
<!-- sharedFragment.html -->
<p th:fragment="sharedFragment(user)">
<span th:text="${user.name}"></span>
<span th:text="${user.age}"></span>
</p>
<!-- otherTemplate.html -->
<div th:replace="sharedFragment :: sharedFragment(${user})"></div>
```
3. 会话属性:可以使用Spring的`@SessionAttributes`注解将模型数据存储在会话中,从而在多个请求之间共享数据。
```java
@Controller
@SessionAttributes("user")
public class UserController {
@GetMapping("/user")
public String getUser(Model model) {
User user = userService.getUser();
model.addAttribute("user", user);
return "user";
}
}
```
```html
<!-- user.html -->
<p th:text="${user.name}"></p>
<p th:text="${user.age}"></p>
```
这些方法可以根据具体的需求选择使用,以实现Thymeleaf模型数据的共享功能。
阅读全文