Помогите пожалуйста, я пытаюсь сделать поиск, чтобы он также сохранял параметры пагинации записей, но ничего не происходит, потому что значение поиска передается на сервер при вводе и сохраняется где-то, а затем повторно используется не полученным.
Если где-то получилось временно сохранить параметр поиска из ввода и затем заменить его, но я не смог найти аналогичное решение без использования javascript.
Как использовать записи поиска с нумерация страниц?
Форма кода:
<form action="/admin/users" method="get" class="d-flex justify-content-center">
<input type="search" name="search" value="${search?ifExists}"
placeholder="Enter name for search" aria-label="Search" class="form-control">
<button class="btn btn-primary btn-sm my-0 p" type="submit">
<i class="fas fa-search"></i>
</button>
</form>
Запрос кода:
@GetMapping("/users")
public String viewAdminUsers(
@RequestParam(required = false, defaultValue = "0") Integer page,
@RequestParam(required = false, defaultValue = "10") Integer size,
@RequestParam(required = false, defaultValue = "id") String sort,
@RequestParam(required = false, defaultValue = "ASC") String dir,
@RequestParam(required = false) String search,
Model model) {
Page<User> users = userService.userList(page, size, sort, dir, search);
model.addAttribute("url", "/admin/users");
model.addAttribute("users", users);
model.addAttribute("sort", sort);
model.addAttribute("dir", dir);
model.addAttribute("search", search);
model.addAttribute("roles", Role.values());
return "adminUsers";
}
Метод почтовой страницы:
public Page<User> userList(Integer pageNo, Integer pageSize, String sortBy, String directionBy, String search) {
Pageable paging;
if (directionBy.equals("DESC")) {
paging = PageRequest.of(pageNo, pageSize, Sort.by(sortBy).descending());
} else {
paging = PageRequest.of(pageNo, pageSize, Sort.by(sortBy).ascending());
}
if (search != null && !search.isEmpty()) {
return userRepo.findByFullnameContains(search, paging);
} else {
return userRepo.findAll(paging);
}
}