在百里香中删除或放置方法

时间:2014-06-17 05:04:05

标签: spring-mvc thymeleaf

我想在春天从百里香的形式致电@RequestMapping(value = "", method = RequestMethod.DELETE)

是否有可能从百里香中调用删除或放置请求映射方法?

请就此提出建议。

5 个答案:

答案 0 :(得分:17)

您可以使用th:method

<form th:object="${commandObject}" th:action="@{/urlToCall}" th:method="delete">

这将生成一个隐藏的输入元素,将由Spring MVC拾取:

<input type="hidden" name="_method" value="delete">

答案 1 :(得分:6)

Thymeleaf是一个HTML模板引擎。 HTML不支持其put属性的deletemethod HTTP方法。所以,不,你不能。但是,你有其他选择。

您可以使用javascript异步发送请求。在这种情况下,您可以发送任何类型的HTTP请求。

您还可以HiddenHttpMethodFilter使用hidden _method=put <input>元素,如here所述。像

这样的东西
<input name="_method" type="hidden" value="PUT" />

答案 2 :(得分:2)

我找到的唯一解决方案-使用js:

添加加密:

<script th:inline="javascript">
    function sendDelete(url) {
        var xhttp = new XMLHttpRequest();
        xhttp.open("DELETE", url, true);
        xhttp.onload = function () {
            let responseURL = xhttp.responseURL;
            console.log("Redirecting to:", responseURL);
            window.location.replace(responseURL);
        };
        xhttp.send();
    }
</script>

并添加呼叫链接(或更改为按钮):

<a type="button" th:with="url = @{<your_url>}" th:onclick="sendDelete([[${url}]])">Delete</a>

答案 3 :(得分:2)

当我们使用ALTER INSTANCE DISABLE INNODB REDO_LOG时,百里香叶会创建隐藏的输入,如下面的屏幕截图所示。然后 HiddenHttpMethodFilter 将发布的方法参数转换为HTTP方法。

httpmethodfilter-conversion

在Spring Boot 2.2中,默认情况下

HiddenHttpMethodFilter disabled

您可以通过将th:method="PUT"添加到a​​pplication.properties文件中来启用此功能。

答案 4 :(得分:0)

我目前正在研究这个主题。据我了解,我们可以在不需要使用 PUTDELETE 方法的情况下执行这些操作。所以你可能不需要使用 JavaScript 或其他任何东西。这些操作只能使用 Thymeleaf、HTML 和 Spring 来完成。

如果有人为此来到这里并正在寻找这样的解决方案,请查看此地址的帖子。这对我很有用。

这是链接:Spring Boot CRUD Thymeleaf