form表单的提交方式只支持GET或者POST,为了实现restful风格,需要使用form表单实现PUT和DELETE方式的提交,对于这种情况,spring提供了过滤器 HiddenHttpMethodFilter
,可以将POST方式提交的表单转换成PUT或者DELETE。
案例环境:
- springboot 2.4.3
- IntelliJ IDEA 2021.1 (Ultimate Edition)
- Google Chrome版本 89.0.4389.114(正式版本)
过滤器 HiddenHttpMethodFilter
在springboot中配置在自动配置类WebMvcAutoConfiguration
中:
@Bean
@ConditionalOnMissingBean(HiddenHttpMethodFilter.class)
@ConditionalOnProperty(prefix = "spring.mvc.hiddenmethod.filter",
name = "enabled", matchIfMissing = false)
public OrderedHiddenHttpMethodFilter hiddenHttpMethodFilter() {
return new OrderedHiddenHttpMethodFilter();
}
OrderedHiddenHttpMethodFilter
继承自HiddenHttpMethodFilter
,然后看HiddenHttpMethodFilter
的源码:
public static final String DEFAULT_METHOD_PARAM = "_method";
private String methodParam = DEFAULT_METHOD_PARAM;
@Override
protected void doFilterInternal(HttpServletRequest request,