📅  最后修改于: 2023-12-03 15:23:57.869000             🧑  作者: Mango
Thymeleaf 是一个用于构建 Java web 应用的模板引擎,它提供了丰富的模板功能来快速生成 HTML 页面。当需要在 HTML 页面中使用 JavaScript 时,可以使用 Thymeleaf 轻松实现。
本文将介绍如何在 HTML 页面中使用 Thymeleaf 调用 JavaScript 函数并将 argument 作为方法 arg。
在 HTML 页面中调用 JavaScript 函数非常简单,只需要在 JavaScript 文件中定义函数,并在 HTML 页面中调用即可。例如,我们定义一个名为 test()
的函数,如下所示:
function test() {
console.log("Hello, world!");
}
在 HTML 页面中调用这个函数,只需要在需要调用的位置添加一行 JavaScript 代码即可:
<script>
test();
</script>
这样,当页面加载时,就会自动执行 test()
函数,输出一段信息。
当需要将数据传给 JavaScript 函数作为参数时,可以通过 Thymeleaf 将数据处理后传入 JavaScript 函数。
在 Thymeleaf 中,我们可以使用 ${}
语法来获取变量值,同时可以使用 th:text
属性来清除 HTML 元素中的文本。例如,我们可以将变量 name
的值传入 JavaScript 函数中:
<script th:inline="javascript">
function test(name) {
console.log('Hello, ' + name + '!');
}
test([[${name}]]);
</script>
在这段代码中,我们定义了一个名为 test()
的函数,其中 name
参数将通过 Thymeleaf 的 ${}
语法获取变量值。在调用函数时,我们使用 [[${name}]]
语法将变量值传入函数中。
这样,当页面加载时,JavaScript 函数 test()
将被自动执行,并输出传入的参数值。需要注意的是,在 HTML 页面中传入的参数值必须是可序列化的,否则可能会产生异常。
假设我们有一个名为 user
的对象,包含 name
和 age
两个属性。我们使用 Thymeleaf 将对象传入 HTML 页面中,并在其中调用 JavaScript 函数输出对象信息。
@Controller
public class UserController {
@GetMapping("/user")
public String getUser(Model model) {
User user = new User("Alice", 20);
model.addAttribute("user", user);
return "user";
}
}
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>用户信息</title>
</head>
<body>
<h1 th:text="${user.name} + '(' + ${user.age} + ')'">Alice (20)</h1>
<script th:inline="javascript">
function showUserInfo(user) {
console.log('Name: ' + user.name + ', Age: ' + user.age);
}
showUserInfo([[${user}]]); // 直接传入对象
</script>
</body>
</html>
在这个页面中,我们首先使用 Thymeleaf 将对象属性值传递给 HTML 元素,输出用户信息。然后,我们在 JavaScript 函数中,将传入的对象 user
直接输出为字符串,以验证传参是否成功。
完整的示例代码如下所示:
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class UserController {
@GetMapping("/user")
public String getUser(Model model) {
User user = new User("Alice", 20);
model.addAttribute("user", user);
return "user";
}
}
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>用户信息</title>
</head>
<body>
<h1 th:text="${user.name} + '(' + ${user.age} + ')'">Alice (20)</h1>
<script th:inline="javascript">
function showUserInfo(user) {
console.log('Name: ' + user.name + ', Age: ' + user.age);
}
showUserInfo([[${user}]]); // 直接传入对象
</script>
</body>
</html>
在浏览器中打开 http://localhost:8080/user 即可查看结果。
本文介绍了如何在 HTML 页面中 使用 Thymeleaf 调用 JavaScript 函数并将 argument 作为方法 arg。通过这种方式,我们可以轻松地将数据传递给 JavaScript 函数并在页面中输出相关信息。