Передать значение в контроллер через AJAX без какого-либо пользовательского ввода, используя Thymeleaf - PullRequest
0 голосов
/ 02 октября 2019

Я хочу создать кнопку, где я могу удалить пользователя. Я хочу отправить идентификатор пользователя из Thymeleaf на мой Spring MVC Controller через AJAX без какого-либо ввода пользователя.

Однако все примеры, которые я видел, используют формы и данные форм. В моем случае я хочу отправить данные, которые у меня уже есть, из Thymeleaf без использования формы. Как я могу сделать это?

  <tr th:each="user : ${userList}">
        <th scope="row"><span th:text="${user.id}"></span></th>
        <td><span th:text="${user.username}"></span></td>
        <td><span th:text="${user.email}"></span></td>
        <td width="60">
            <div class="dropdown">
                <button class="btn btn-light btn-block dropdown-toggle text-right" type="button" data-toggle="dropdown"><span th:text="${user.roles[0].role}"></span>
                    <span class="caret"></span></button>
                <ul class="dropdown-menu">
                    <div th:each="role : ${user.roles}">
                        <span th:href="@{'/users/manageRole' + ${user.id}}" th:text="${role.role}"></span>
                    </div>
                </ul>
            </div>
        </td>
        <td>
            I want to send ${user.id} as a DELETE method to /admin/users from Thymeleaf here

            My attempt without AJAX using URL parameter : 
            <form method="DELETE" th:action="@{'/admin/users/' + ${user.id}}"
                <button type="submit" class="btn btn-light btn-block" id="submit">Delete User</button>
            </form>
            Problem with this implementation is the button redirects to /admin/users/${user.id}, 
            I don't want any redirects. I also would prefer not to show the user ID as a parameter in the URL.

        </td>

1 Ответ

1 голос
/ 02 октября 2019

Сохраните идентификатор пользователя в скрытом вводе (или любом другом элементе html):

<input id="userIdInput" th:value="${user.id}" hidden>

Затем получите его в js и сделайте необходимый вызов ajax (пример, предполагающий, что вы используете JQuery;это в функции и вызывать ее по нажатию кнопки или в зависимости от того, что вам нужно)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...