Задать вопрос

Почему post запрос не отображается на jsp странице?

Запросом 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";
    }
  • Вопрос задан
  • 39 просмотров
Подписаться 1 Средний 2 комментария
Пригласить эксперта
Ответы на вопрос 1
xez
@xez Куратор тега Java
TL Junior Roo
Вам нужно добавить аннотацию @RequestBody к String data вместо @RequestParam

@RequestParam - это параметры в строке запроса
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы