对于restful的支持,springboot2.x支持get和post、put请求,但是对于delete请求并不支持。
在使用的时候,会出现405异常。异常如下:
Whitelabel Error PageThis application has no explicit
mapping for /error, so you are seeing this as a fallback.
Tue Dec 10 14:14:52 CST 2019There was an unexpected error (type=Method Not Allowed, status=405).Request method
'POST' not supported
问题出现的原因是因为默认的情况下springboot2.x没有启用HiddenHttpMethodFilter过滤器;
在WebMVCAutoConfiguration中的源码如下:
@Bean
@ConditionalOnMissingBean(HiddenHttpMethodFilter.class)
@ConditionalOnProperty(prefix = "spring.mvc.hiddenmethod.filter", name = "enabled", matchIfMissing = false)
public OrderedHiddenHttpMethodFilter hiddenHttpMethodFilter() {
return new OrderedHiddenHttpMethodFilter();
}
从中我们可以看到spring.mvc.hiddenmethod.filter.enabled的值在缺省的情况下默认为false;
也就是说HiddenHttpMethodFilter默认没有开启。
解决方案:
在application.properties中配置:
spring.mvc.hiddenmethod.filter.enabled=true
问题解决。