html - SpringMVC : Problems with specifying method in form to be DELETE

标签 html spring spring-mvc

我正在尝试删除服务器上的资源,并希望通过我网页上的普通链接来执行此操作。

我知道在点击链接时我们无法向服务器发送 DELETE 请求,所以我尝试通过以下方法解决此问题

<form id="aux_form" action="environment/">
   <input type="hidden" name="_method" value="delete">
   <input type="hidden" name="id" value="${env.id}">
</form>

我的 Spring Controller 方法用

注释
@RequestMapping(value = "/environment/", method = RequestMethod.DELETE)

但是,我收到错误消息 “请求的资源不允许指定的 HTTP 方法(不支持请求方法‘GET’)。” 所以我知道我的 Controller 方法没有被调用并且删除请求未正确映射。

如果有人能告诉我如何正确发送此删除请求,我将不胜感激。

谢谢:)

最佳答案

这应该有效:

在您的 web.xml 文件中注册此过滤器,这会将表单中的 _method 隐藏参数转换为 DELETE Http 请求:

<filter>
    <filter-name>HttpMethodFilter</filter-name>
    <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
</filter>

<filter-mapping>
    <filter-name>HttpMethodFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

现在您的请求可以由这种类型的处理程序处理:

@RequestMapping(value = "/environment/", method = RequestMethod.DELETE)

关于html - SpringMVC : Problems with specifying method in form to be DELETE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11948064/

相关文章:

php - 分号中断 mysql_query

javascript - 是什么导致背景 : none to be overriden on a page?

java - Solr 未找到名称为 [categoryPath] 的方面

java - 如何将 H2 控制台连接到嵌入式 Spring H2 DB

java - Spring MVC 数据绑定(bind) - 原始类型

java - Wicket - 在 wicket 表中动态添加列

javascript - 如何检测点击的元素是否不是 jQuery 元素的子元素?

java - 为具有不同参数的同一 URL 模式创建两个方法(带参数和不带参数)

java - JBoss 到 Spring Boot 和 Spring Security 升级 : X509 Authentication problems

java - web.xml 和 spring mvc 配置文件中处理错误的区别