Model 笔记

一、作用

在 Spring MVC(结合 Thymeleaf 模板引擎的服务端渲染场景中),Model 是用于向页面模板共享数据的核心对象,它能将后端的业务数据传递到前端页面,供 Thymeleaf 语法读取并渲染。

二、使用场景

当需要在服务端渲染页面时(如登录成功后展示用户列表、个人信息等),通过 Model 把数据从控制器(Controller)传递到页面模板(如 Thymeleaf 的 .html 文件)。

三、使用方式

在控制器方法中,通过方法参数注入 Model 对象,再调用其 addAttribute() 方法添加数据:

1
2
3
4
5
6
7
8
9
10
11
@RequestMapping("/login.do")
public String login(String username, String password, Model model) {
// 模拟用户列表数据
List<User> userList = Arrays.asList(...);
// 向 Model 中添加数据,key 为 "users",值为 userList
model.addAttribute("users", userList);
// 传递用户名
model.addAttribute("username", username);
// 最终这些数据会被传递到页面模板中
return "page/success";
}

四、与页面模板的联动(以 Thymeleaf 为例)

在 Thymeleaf 页面中,通过其语法(如 th:textth:each 等)读取 Model 中传递的数据:

1
2
3
4
5
6
7
8
9
10
11
<!-- 读取单个数据 -->
<h2>用户名:<span th:text="${username}"></span></h2>

<!-- 遍历列表数据 -->
<table>
<tr th:each="user : ${users}">
<td th:text="${user.id}"></td>
<td th:text="${user.name}"></td>
<td th:text="${user.age}"></td>
</tr>
</table>

五、核心意义

Model 是服务端渲染模式中后端与前端页面数据交互的桥梁,它让控制器能灵活地将业务数据传递给模板引擎,最终渲染出动态的页面内容。