我不知道如何访问我在 html 中使用 Vue 控制器创建的模型。我知道如何使用 thymeleaf 访问模型属性,但在任何地方都找不到有关如何使用 Vue 访问它们的任何信息。我想将控制器的计数值存储在我下面的 Vue 数据计数中。我在 CDN 托管的模板中使用 Vue,而不是作为一个单独的项目。
这是我的控制器:
@PostMapping("/word")
public String searchSentence(@ModelAttribute WordSearch wordSearch, Model model) {
int c = wordSearch.search();
String count = String.valueOf(c);
model.addAttribute("wordSearch", wordSearch);
model.addAttribute("count", count);
return "count";
}
这是count.html:
<!DOCTYPE HTML>
<html xmlns:th="https://www.thymeleaf.org">
<head>
<title>Count-Form</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
<h1>Result</h1>
<p th:text="'sentence: ' + ${wordSearch.sentence}" />
<p th:text="'word: ' + ${wordSearch.word}" />
<!--<p th:text="'count: ' + ${count}" /> -->
<div id="count-text" style="display: none">
<p th:text="${count}" />
</div>
<div id="app">
{{count}}
</div>
<script>
new Vue({
el: '#app',
data() {
return {
count: ""
}
},
created() {
this.count = ???
}
})
</script>
<a href="/greeting">Submit another message</a>
</body>
</html>
您可以关注此博客来做您想做的事。 https://dev.to/brunodrugowick/spring-boot-vue-js-axios-and-thymeleaf-with-bootstrap-in-4-commits-2b0l。在本文中,作者解释了如何通过在 pom.xml 中添加 VueJS 依赖项来一起使用 Thymeleaf 和 VueJS。
您需要在 pom xml 中遵循以下依赖项才能使用 VueJS,
<dependency>
<groupId>org.webjars</groupId>
<artifactId>vue</artifactId>
<version>2.6.11</version>
</dependency>
Thymeleaf 是服务器端 Java 模板引擎,而 Vue 是构建前端层的 JS 框架。将 Spring 与 Vue 连接的最佳方式是通过 API。
因此,您需要将数据公开为 JSON,进行 http 调用 vue app -> java api
并使用响应。
Here 你可以找到更多细节,这是如何工作的