前端页面中怎么使用 Thymeleaf 的语法来获取 ModelMap 中的数据
时间: 2024-02-25 12:53:58 浏览: 204
使用 Thymeleaf 的语法获取 ModelMap 中的数据,可以使用 `${}` 表达式语言,例如 `${modelMapName.key}`,其中 `modelMapName` 是 ModelMap 中存储数据的名称,`key` 是数据的键值。比如,如果 ModelMap 中存储了一个名为 `user` 的对象,其中包含了一个名为 `name` 的属性,那么可以使用以下语法来获取该属性的值:
```
<p th:text="${user.name}">default name</p>
```
在以上代码中,`${user.name}` 表达式会从 ModelMap 中获取名为 `user` 的对象,然后再获取该对象的 `name` 属性值,并将其填充到 `<p>` 标签中。如果 ModelMap 中不存在名为 `user` 的对象,或者 `user` 对象中不存在 `name` 属性,那么会显示默认的文本 “default name”。
相关问题
在<script></script>中怎么使用 Thymeleaf 的语法来获取 ModelMap 中的List类型数据
在 `<script>` 标签中使用 Thymeleaf 的语法获取 ModelMap 中的 List 类型数据,可以使用 `th:inline="javascript"` 属性开启 JavaScript 内联模式,然后使用 `[# th:each]` 指令进行循环遍历。比如,假设 ModelMap 中存储了一个名为 `users` 的 List 对象,可以使用以下方式获取该 List 中的数据:
```
<script th:inline="javascript">
// 定义一个 JavaScript 数组
var users = [];
// 使用 Thymeleaf 循环遍历 ModelMap 中的 List 对象
/*[# th:each="user : ${users}"]*/
// 将每个用户对象转换成 JavaScript 对象,并添加到数组中
var userObj = {
id: /*[[${user.id}]]*/,
name: /*[[${user.name}]]*/,
age: /*[[${user.age}]]*/
};
users.push(userObj);
/*[/]*/
// 打印 JavaScript 数组
console.log(users);
</script>
```
在以上代码中,我们使用 `th:inline="javascript"` 属性开启了 JavaScript 内联模式,然后使用 `[# th:each]` 指令遍历了 ModelMap 中的 `users` List 对象,将每个用户对象转换成了 JavaScript 对象,并添加到了 `users` 数组中。在 `var userObj = {...}` 表达式中,我们使用了 `${}` 表达式语言来获取每个用户对象中的属性值,其中 `user.id`、`user.name`、`user.age` 分别对应 List 中每个用户对象的 id、name、age 属性。最后,我们将 `users` 数组打印到控制台中。
前后端不分离项目中,前端怎么使用thymeleaf
在前后端不分离的项目中,Thymeleaf是一种流行的Java模板引擎,可以将HTML页面与后端Java代码结合使用。
前端使用Thymeleaf的步骤如下:
1. 在HTML页面中引入Thymeleaf命名空间:`<html xmlns:th="http://www.thymeleaf.org">`
2. 在HTML页面中使用Thymeleaf表达式来访问后端Java代码,例如:`<p th:text="${message}">Placeholder text</p>`
3. 在后端Java代码中设置需要传递到前端的数据,例如:`model.addAttribute("message", "Hello, World!");`
4. 最后,在控制器中将数据和HTML页面结合起来,例如:`return "home";`(其中“home”是HTML页面的文件名)。
注意:Thymeleaf表达式以“${}”形式出现,其中“message”是需要传递到前端的数据的名称。在Thymeleaf表达式中,还可以使用其他操作符和语法来访问Java对象、集合和数组等数据类型。
阅读全文