Ajax结合THymeleaf使用
<script type="text/javascript"> //通过$("标签"),也可以使用id的点击事件 $("a").click(function () { //var id = [[${book.getBook_id()}]];这里是thymeleaf在外部取值 //var category = [[${book.getBook_category()}]]; $.ajax({ //异步请求的url,参数是data,后台也是走Controller url : "//localhost:8080/toModuleOne", type : "GET", headers:{"Content-Type":"application/json;charset=UTF-8"}, data: { "id": [[${book.getBook_id()}]], "category": [[${book.getBook_category()}]] }, success: function(data) {//ajax请求成功后触发的方法 alert('请求成功'); }, error : function(data){ alert("请求失败!"); } }); }); </script>
//使用点击事件,执行方法如果页面中有多个相同的方法,只识别最后一个(我在th:each遍历时以下a标签生成多个,但是只执行最后一个) <a onclick="myFunction()" th:text="${book.getBook_name()}"></a> function myFunction() { ... //使用id出发点击事件,定义多个相同id也只识别一个 <a id="a" th:text="${book.getBook_name()}"></a> $("#a").click(function () { ... ////使用点击事件,执行方法传参(其他方式的传参一直失败) <a onclick="myFunction(this.id,this.name)" th:id="${book.getBook_id()}" th:name="${book.getBook_category()}" th:text="${book.getBook_name()}"></a> <script type="text/javascript"> //接受参数 function myFunction(id,category) { $.ajax({ url : "//localhost:8080/toModuleOne", type : "Get", headers:{"Content-Type":"application/json;charset=UTF-8"}, data: {"id": id,"category": category}, dataType : "html", success: function(data) {//ajax请求成功后触发的方法 //重新加载页面window.location.reload();
document.write(data);//data就是异步请求执行Controller后,返回的数据,这里是整个页面(所有标签和数据) document.close();//这里需要关闭,不然页面会叠加
//或者使用下面的方式替换页面,不过新的页面js样式可能会失效: //标签:$("body").html(data); //id:$("#content-wrapper").html(data); }, error : function(data){ alert("请求失败!"); } }); }; </script>