SpringBoot的使用HiddenHttpMethodFilter组件无法将POST转换为PUT请求解决办法

该组件SpringBoot已经自动配置好,无需再@Bean组件,但自己用的时候却老是无法映射到Controller里对应的PUT请求,然后去瞄了眼webmvc的自动配置类:

@Bean
@ConditionalOnMissingBean({HiddenHttpMethodFilter.class})
@ConditionalOnProperty(
    prefix = "spring.mvc.hiddenmethod.filter",
    name = {"enabled"},
    matchIfMissing = false
)
public OrderedHiddenHttpMethodFilter hiddenHttpMethodFilter() {
    return new OrderedHiddenHttpMethodFilter();
}

发现较先前版本多了@ConditionalOnProperty的注解,也就是条件引入。查看括号内的内容可以知道,这个组件是否加入容器决定于这个属性,再看下SpringBoot配置的元数据对这个property的说明

{
      "name": "spring.mvc.hiddenmethod.filter.enabled",
      "type": "java.lang.Boolean",
      "description": "Whether to enable Spring's HiddenHttpMethodFilter.",
      "defaultValue": false
},

可以知道SpringBoot仅在"spring.mvc.hiddenmethod.filter.enabled"这个property的值为true时才会引入这个组件,但SpringBoot默认该属性值为false,所以该版本这个组件是默认没有加入容器的。

所以我们只需在配置文件里加上这一句:

spring.mvc.hiddenmethod.filter.enabled = true

这样POST请求就可以成功转换成PUT和DELETE请求啦

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值