Код: Выделить всё
... another code!!!
Close
Edit
Delete
< /code>
Вот код сценария, который заполняет окно данных < /p>
var saveUserUrl = '[[@{/saveUser}]]';
var deleteUserUrl = '[[@{/deleteUser}]]';
$('#userModal').on('show.bs.modal', function (event) {
var button = $(event.relatedTarget);
var userId = button.data('user-id');
var operation = button.data('operation');
var modal = $(this);
modal.find('.modal-body #userId').val(userId);
... another code!!!
var form = modal.find('.modal-body form');
if (operation === 'edit') {
form.attr('action', saveUserUrl);
} else {
// Добавляем userId к URL для удаления
form.attr('action', deleteUserUrl);
}
... another code!!!
var editButton = modal.find('.modal-body .btn-primary');
var deleteButton = modal.find('.modal-body .btn-danger');
if (operation === 'edit') {
editButton.show();
deleteButton.hide();
} else {
editButton.hide();
deleteButton.show();
}
... another code!!!
});
< /code>
Вот как фрагмент с модальным окном вставлен в основной файл HTML < /p>
Этот метод работает, когда вы нажимаете кнопку «Редактировать» в модальном окне
Код: Выделить всё
@PostMapping("/saveUser")
public String saveUser(@ModelAttribute("user") User user,
@RequestParam(value = "roles", required = false) List roleIds,
@RequestParam(value = "newPassword", required = false) String newPassword) {
... another code!!!
}
< /code>
И этот метод даже не идет, когда вы нажимаете кнопку «Удалить» в модальном окне < /p>
@PostMapping("/deleteUser")
public String deleteUser(User user) {
//TODO: println
System.out.println("deleteUser: " + user.getId());
userService.delete(user.getId());
return "redirect:/admin-bootstrap";
}
Все необходимые представления есть
Я пробовал передачу пользователя. Подобный метод < /p>
@PostMapping("/deleteUser")
public String deleteUser(@RequestParam("userId") Long id) {
System.out.println("deleteUser: " + id);
userService.delete(id);
return "redirect:/admin-bootstrap";
}
< /code>
Это тоже не сработало, println () не выводил в консоли. Нажмите кнопку «Редактировать», пользовательские данные в базе данных переписываются внутри модального окна - эта функция работает! Но когда вы нажимаете кнопку «Удалить», модальное окно также открывается, но с заблокированными полями ввода, измененный заголовок («Редактировать пользователь» заменяется «Удалить пользователя»), кнопка редактирования в модальном окне скрыта, и кнопка удаления отображается, и когда вы нажимаете на нее, соответствующий метод контроллера должен работать, но он даже не входит в нее!>
Подробнее здесь: https://stackoverflow.com/questions/794 ... nt-buttons