在web.xml文件中注册过滤器实现(如果使用了编码过滤器,要放在编码过滤器后面)。
<filter>
<filter-name>HiddenHttpMethodFilter</filter-name>
<filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>HiddenHttpMethodFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
配置了过滤器之后要满足两个条件,才能将请求方式转化为put和delete
- 当前请求必须为post
- 当前请求必须传输请求参数_method,_method的值才是最终的请求方式(该input标签最好设置为hidden类型)
例子如下,前端使用了thymeleaf,可以不用在意 "th:"。
<form th:action="@{/user/updateUser}" method="post">
<!-- 首先保证原本的请求方式是post,然后配置下面标签改变请求方式-->
<!-- name必须设置为_method, value值才是真正的请求方式,比如下面就是put请求-->
<input type="hidden" name="_method" value="put">
<input type="submit" value="修改用户信息">
</form>
<form th:action="@{/user/1}" method="post">
<input type="hidden" name="_method" value="delete">
<input type="submit" value="删除用户信息">
</form>