AJAX(Asynchronous JavaScript and XML)是一種用于在網(wǎng)頁上異步加載數(shù)據(jù)的技術(shù),借助于AJAX,我們可以實(shí)現(xiàn)動(dòng)態(tài)的網(wǎng)頁內(nèi)容更新,而不需要刷新整個(gè)頁面。在SSM(Spring + SpringMVC + MyBatis)框架中,使用AJAX進(jìn)行模糊查詢是一種常見的需求。本文將介紹如何使用AJAX在SSM框架中實(shí)現(xiàn)模糊查詢的功能。
假設(shè)我們有一個(gè)學(xué)生信息管理系統(tǒng),其中有一個(gè)學(xué)生列表頁面,我們希望能夠根據(jù)學(xué)生姓名進(jìn)行模糊查詢。當(dāng)用戶在搜索框中輸入關(guān)鍵詞后,系統(tǒng)會(huì)自動(dòng)異步請(qǐng)求后端接口,返回符合條件的學(xué)生信息,然后動(dòng)態(tài)更新頁面內(nèi)容。例如,當(dāng)用戶輸入"張"時(shí),系統(tǒng)會(huì)返回所有姓"張"的學(xué)生信息。
下面是實(shí)現(xiàn)模糊查詢的代碼示例:
// 前端HTML頁面代碼 <html> <head> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script> <script> $(document).ready(function(){ $("#searchInput").keyup(function(){ var keyword = $(this).val(); $.ajax({ url: "/search", type: "POST", data: {"keyword": keyword}, dataType: "json", success:function(result){ $("#result").empty(); $.each(result, function(index, student){ $("#result").append("<p>" + student.name + "</p>"); }); } }); }); }); </script> </head> <body> <input type="text" id="searchInput" placeholder="請(qǐng)輸入關(guān)鍵詞"> <div id="result"></div> </body> </html>
// 后端Java代碼 @Controller public class StudentController { @Autowired private StudentService studentService; @RequestMapping(value = "/search", method = RequestMethod.POST) @ResponseBody public ListsearchStudent(@RequestParam("keyword") String keyword) { return studentService.searchStudent(keyword); } }
在上述代碼中,我們首先引入了jQuery庫,然后使用`keyup`事件監(jiān)聽搜索框的輸入操作。每當(dāng)用戶輸入文本時(shí),會(huì)觸發(fā)AJAX請(qǐng)求,請(qǐng)求的URL是`/search`,請(qǐng)求類型為POST。我們將輸入的關(guān)鍵詞作為data傳遞給后端,后端會(huì)根據(jù)關(guān)鍵詞進(jìn)行模糊查詢,并將查詢結(jié)果以JSON格式返回。
在后端代碼中,`@RequestMapping`指定了處理請(qǐng)求的URL為`/search`,方法的參數(shù)使用`@RequestParam`注解綁定前端傳遞過來的關(guān)鍵詞。`@ResponseBody`注解表示返回的數(shù)據(jù)將以JSON格式返回。
以上就是使用AJAX在SSM框架中實(shí)現(xiàn)模糊查詢的簡單示例。通過使用AJAX,用戶輸入關(guān)鍵詞后,頁面會(huì)動(dòng)態(tài)顯示符合條件的學(xué)生信息,無需刷新整個(gè)頁面,提高了用戶體驗(yàn)。