Ajax请求简单实现
在spring boot + thymeleaf环境下,利用thymeleaf的fragments模板,实现Ajax请求.
主页面block
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.w3.org/1999/xhtml">
<head>
<meta charset="UTF-8" />
<script src="js/jquery-3.1.1.min.js"></script>
<script src="js/ajax1.js" type="text/javascript"></script>
<title>Title</title>
</head>
<body>
Hello World!
<div class="search-block">
<input type="text" id="searchSurname" name="searchSurname" />
<br />
<label for="searchSurname" th:text="#{search.label}">Search label:</label>
<button id="searchButton" name="searchButton" onclick="retrieveGuests()" type="button" th:text="#{search.button}">Search button</button>
</div>
<div id="resultsBlock">
</div>
</body>
</html>
当点击button::onclick
事件,触发在ajax1.js中定义的retrieveGuests()
。
ajax请求定义
// ajax1.js
function retrieveGuests() {
var url = '/users';
$("#resultsBlock").load(url);
}
触发ajax请求,并且请求结果放入到#resultsBlock
标签中。
java端后台实现请求处理
@RequestMapping(value = "/users", method = RequestMethod.GET)
public String showGuestList(Model model) {
model.addAttribute("guests", userService.getUserLists());
return "fragments/sample :: resultsList";
}
定义fragments模板
当请求返回后,会调用fragments/sample::resultsList
模板,模板如下:
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
</head>
<body>
<div th:fragment="resultsList" th:unless="${#lists.isEmpty(guests)}" id="results-block">
<table>
<thead>
<tr>
<th th:text="ID">Id</th>
<th th:text="username">Surname</th>
<th th:text="loginName">Name</th>
<th th:text="workerId">Country</th>
</tr>
</thead>
<tbody>
<tr th:each="guest : ${guests}">
<td th:text="${guest.uid}">id</td>
<td th:text="${guest.username}">surname</td>
<td th:text="${guest.loginName}">name</td>
<td th:text="${guest.workerId}">country</td>
</tr>
</tbody>
</table>
</div>
</body>
</html>