📅  最后修改于: 2023-12-03 14:47:58.528000             🧑  作者: Mango
在 Web 应用程序中,我们经常需要将后端数据传递给前端 JavaScript。Thymeleaf 提供了多种方式来实现这一目的。下面将介绍两种常用的方式:将 Thymeleaf 变量传递给 JavaScript 变量和将 Thymeleaf 变量传递给 JavaScript 函数。
将 Thymeleaf 变量传递给 JavaScript 变量的最简单的方法是在 HTML 页面中定义变量。在 Thymeleaf 中,可以通过 th:text
属性将后端变量的值赋值给 HTML 标签的文本值。通过这种方式,我们可以将变量的值传递给 JavaScript 变量。
<!DOCTYPE html>
<html>
<head>
<title>Thymeleaf Demo</title>
<script th:inline="javascript">
/* 将 Thymeleaf 变量 msg 的值赋值给 JavaScript 变量 message */
var message = /*[[${msg}]]*/ '';
</script>
</head>
<body>
<h1 th:text="${msg}">Hello World!</h1>
<script>
/* 使用 JavaScript 变量 message */
console.log(message);
</script>
</body>
</html>
在这个例子中,我们先在 head
中定义了一个 JavaScript 变量 message
,把 Thymeleaf 变量 msg
的值赋值给了它。然后在 body
中打印出了这个变量的值。
除了在 HTML 中定义变量外,还可以在 JavaScript 中定义变量,并将 Thymeleaf 变量的值赋值给它。
<!DOCTYPE html>
<html>
<head>
<title>Thymeleaf Demo</title>
<script th:inline="javascript">
/* 在 JavaScript 中定义变量 message,并将 Thymeleaf 变量 msg 的值赋值给它 */
var message = /*[[${msg}]]*/ '';
console.log(message);
</script>
</head>
<body>
<h1 th:text="${msg}">Hello World!</h1>
</body>
</html>
在这个例子中,我们在 JavaScript 中定义了变量 message
,并将 Thymeleaf 变量 msg
的值赋值给它。
有时候我们需要将 Thymeleaf 变量传递给 JavaScript 中的函数。这时候可以使用 th:onclick
属性来实现。
<!DOCTYPE html>
<html>
<head>
<title>Thymeleaf Demo</title>
<script>
/* 定义一个 JavaScript 函数,接受一个参数 */
function showMessage(message) {
alert(message);
}
</script>
</head>
<body>
<h1 th:text="${msg}">Hello World!</h1>
<!-- 当按钮被点击时,调用 showMessage 函数,并将 Thymeleaf 变量 msg 的值作为参数传递给它 -->
<button th:onclick="'showMessage(' + /*[[${msg}]]*/ '' + ')'" >Click Me</button>
</body>
</html>
在这个例子中,我们定义了一个 JavaScript 函数 showMessage
,使用 th:onclick
属性将 Thymeleaf 变量 msg
的值作为参数传递给这个函数。当按钮被点击时,就会弹出一个对话框,显示变量的值。
Thymeleaf 提供了多种将后端变量传递给前端 JavaScript 的方法。我们可以在 HTML 中定义变量,也可以在 JavaScript 中定义变量,并将后端变量的值赋值给它们。另外,我们还可以使用 th:onclick
属性来将变量传递给 JavaScript 中的函数。无论哪种方法都非常简单,方便易用。