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>