Запросом post обрабатываю поиск, в jsp страницу должен передаваться объект users, попробовал для теста еще передать параметр test, в консоли аналогично выводит null
search.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java"%>
<%@ page isELIgnored="false"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ page import="com.profile.Course_work.models.User" %>
<html>
<head>
<meta charset="UTF-8">
<title>Поиск</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container mt-5 mb-5">
<form:form method="post">
<h1 class="h3 mb-3 fw-normal">Поиск людей, введите что-то из следующего списка</h1><br>
<ul>
<li>Логин</li>
<li>Фамилию Имя Отчество (Можно отдельно, можно все сразу)</li>
<li>Увлечения</li>
</ul>
<div class="form-floating">
<input class="form-control" id="floatingInput" name="data" placeholder="Данные">
<label for="floatingInput">Введите данные</label>
</div><br>
<button class="btn btn-primary w-100 py-2" type="submit">Найти</button>
</form:form>
</div>
<%
System.out.println(request.getParameter("users"));
System.out.println(request.getParameter("test"));
System.out.println(request.getParameter("userId"));
System.out.println(request.getParameter("error"));
%>
<%-- Секция для отображения результатов поиска --%>
<div class="container mt-5">
<h2>Результаты поиска:</h2>
<c:choose>
<c:when test="${empty users}">
<p>Пользователи не найдены</p>
</c:when>
<c:otherwise>
<table class="table table-striped table-bordered">
<thead>
<tr>
<th>Логин</th>
<th>Действие</th>
</tr>
</thead>
<tbody>
<c:forEach var="user" items="${users}">
<tr>
<td>${user.login}</td>
<td>
<form action="/sendRequest" method="post">
<input type="hidden" name="to" value="${user.id}">
<button class="btn btn-success">Отправить заявку</button>
</form>
</td>
</tr>
</c:forEach>
</tbody>
</table>
</c:otherwise>
</c:choose>
</div>
</body>
</html>
Postmapping
@PostMapping("/search")
public String search(@RequestParam("userId") Long userId,
@RequestParam String data,
Model model,
RedirectAttributes redirectAttributes) {
model.addAttribute("userId", userId);
model.addAttribute("test", "test");
List<User> users = new ArrayList<>();
model.addAttribute("users", users);
try {
data = data.trim();
Optional<User> user = userRepository.findByLoginIgnoreCase(data);
if (user.isPresent()) {
users.add(user.get());
model.addAttribute("users", users);
return "search";
}
}
catch (Exception e) {
model.addAttribute("errorMessage", "Ошибка при поиске по логину: " + e.getMessage());
e.printStackTrace(); // Логируем ошибку для отладки
}
try {
users = userService.findAllbyHobbyes(data);
if (!users.isEmpty()) {
model.addAttribute("users", users);
return "search";
}
}
catch (Exception e) {
model.addAttribute("errorMessage", "Ошибка при поиске по увлечениям: " + e.getMessage());
e.printStackTrace();
}
try {
users = userRepository.searchByFullName(data);
if (!users.isEmpty()) {
model.addAttribute("users", users);
return "search";
}
}
catch (Exception e) {
model.addAttribute("errorMessage", "Ошибка при поиске по полному имени: " + e.getMessage());
e.printStackTrace();
}
if (users.isEmpty()) {
model.addAttribute("error", "Пользователи не найдены");
}
model.addAttribute("users", users);
return "search";
}