ajax - Spring Boot 和 Thymeleaf:更新数据库而不刷新页面
问题描述
我有一个显示列表的应用程序,我希望用户能够单击一个复选框以“检查”所看到的特定列表。
如果我刷新页面,我已经设法做到这一点,但问题是使用该解决方案我需要在每次用户“检查”列表时查询数据库以取回我的“列表”。
我认为使用 Ajax 我应该能够更新数据库中的特定列表对象,而无需刷新整个页面,因此无需查询数据库中的所有“列表”对象。
我已经尝试使用以下代码,但是 Ajax 函数要么没有被调用,要么没有工作,因为当我勾选复选框时我的控制器没有被调用:
控制器:
@PostMapping({"/{id}/check", "Check Listing"})
public void checkListing(@PathVariable("id") long id) {
// update listing
}
复选框:
<input type="checkbox" th:onclick="|checkedListing('${listing.id}')|"/>
<div id="successMessage" style="display:none;"> Listing successfully updated! </div>
阿贾克斯功能:
function checkedListing(listingId) {
$.ajax({
type: 'post',
url: "/" + listingId + "/check",
success: function () {
$("#successMessage").show();
}
});
}
</script>
你能告诉我我做错了什么吗?谢谢!
解决方案
Can you try making your ajax script thymleaf readable as
<script th:inline="javascript">
/*<![CDATA[*/
//here goes your ajax function
/*]]>*/
</script>
Apart from that i assume you have controller method public void checkListing(@PathVariable("id") long id)
in class @RestController
推荐阅读
- python - 在 macOS 问题上安装 py3exiv2
- service-worker - 带有 Service Worker 的 CSP
- c# - C# 将文本文件中的 REG_MULTI_SZ 值转换为字符串
- javascript - 如何将动态创建的文本框值从 javascript 传递到 mvc 控制器
- c# - 用c#在2个sql server数据库之间进行数据翻译#
- machine-learning - 稀疏张量没有步幅
- xml - 明智地保存和读取更改的配置(存储在 XML 文件中)
- python - GitHub 上 Jupyter 笔记本中的目录
- node.js - 尝试重构 Express 路线
- android - 如何使用最新的 R8 Shrinker 版本