Thymeleaf - попробуйте создать кнопку удаления для каждого изображения - PullRequest
0 голосов
/ 23 апреля 2019

Итак, я хочу создать кнопку удаления для каждого доступного изображения.Проблема в том, что когда я нажимаю кнопку удаления, он даже не переходит к контроллеру

Контроллер

@Autowired
private PropertyClientService propertyClientService;

@GetMapping(value = {"/property/list"})
public ModelAndView list() {
    return new ModelAndView("property/list.html");
}

@GetMapping(value = {"/property/edit/{id}"})
public String edit(@PathVariable Long id, Model model) {
    model.addAttribute("property", propertyClientService.get(id));
    return "property/edit";
}

 @DeleteMapping(value = {"/property/deleteimage/{id}"}, params = "action=deleteImage")
public String deleteImage(
        @PathVariable Long id) {
    propertyClientService.deleteImage(id);
    return "redirect:/admin/property/list";
}

html с тимилифом

                        <form class="form form-horizontal" name="editProperty"
                          th:action="@{/admin/property/update/}+${property.id}" th:object="${property}"
                          method="post">
                           <div class="form-group">
                            <label class="col-sm-4 control-label">
                                Photo:
                            </label>
                            <div class="col-sm-8" id="photo" th:each="image : *{images}">
                                <img th:src="${image.url}"/>
                                <a th:href="|@{/admin/property/deleteimage/}+${id}|" class="btn btn-danger" value="deleteImage">Delete</a>
                                <!--<button type="submit" name="action" value="deleteImage">Delete Image</button>-->
                            </div>

                            <a href="javascript:void(0)" onclick="addMoreFiles('addPhoto')" class="btn btn-default">Add
                                Photo</a>

                            <div class="col-sm-10 addPhoto">
                                <input type="file" name="addPhoto" onchange="readURL(this);"/><br/>
                            </div>
                            </div>
                    </form>

ошибка

Произошла непредвиденная ошибка (тип = метод не разрешен, статус = 405).Метод запроса 'GET' не поддерживается

Я новичок в мире программирования.Пожалуйста, извините, если код не опрятен или есть глупая ошибка или способ, которым я задаю вопрос, плох.Пожалуйста, ведите меня с легким словом, спасибо :)

1 Ответ

1 голос
/ 23 апреля 2019

Вы ожидаете Запрос на удаление в вашем контроллере, который не удовлетворен вашей ссылкой:

<a th:href="|@{/admin/property/deleteimage/}+${id}|" class="btn btn-danger" value="deleteImage">Delete</a>, который генерирует запрос GET.

Вы можете сделать две вещи:

  1. Вы можете изменить свое отображение на GetMapping.
  2. Вы можете отправить свою форму с помощью функции JS, и во время отправки вамможно изменить свой метод на УДАЛИТЬ.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...