Thymeleaf-尝试为每个图像创建一个删除按钮

时间:2019-04-23 12:25:14

标签: javascript html thymeleaf

因此,我想为每个可用图像创建一个删除按钮。问题是,当我单击删除按钮时,它甚至都没有转到控制器

控制器

@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 个答案:

答案 0 :(得分:1)

您期望控制器中的 删除请求 对该链接不满意:

<a th:href="|@{/admin/property/deleteimage/}+${id}|" class="btn btn-danger" value="deleteImage">Delete</a>会产生GET请求。

您可以做两件事:

  1. 您可以将映射更改为GetMapping。
  2. 您可以使用JS函数发送表单,并在发送表单时将方法更改为DELETE。