程序员社区

Spring Boot 中 form 表单发送 put、delete 请求

步骤:针对 SpringBoot 1.x 版本,2.x版本好像需要全局配置文件配置spring.mvc.hiddenmethod.filter.enabled=true

1.配置 HiddenHttpMethodFilter

        Spring Boot 已经为我们自动配置了HiddenHttpMethodFilter类,所以就不需要我们来配置了。该部分的配置在 WebMvcAutoConfiguration 类下,它会通过code>@ConditionalOnMissingBean(HiddenHttpMethodFilter.class)这个条件来判断该过滤器是否需要自动配置。如果容器中已经存在 HiddenHttpMethodFilter 对象,就不会自动配置。

@Configuration
@ConditionalOnWebApplication
@ConditionalOnClass({
    Servlet.class, DispatcherServlet.class,WebMvcConfigurerAdapter.class })
@ConditionalOnMissingBean(WebMvcConfigurationSupport.class)
@AutoConfigureOrder(Ordered.HIGHEST_PRECEDENCE + 10)
@AutoConfigureAfter({
    DispatcherServletAutoConfiguration.class,ValidationAutoConfiguration.class })
public class WebMvcAutoConfiguration {
   

    public static final String DEFAULT_PREFIX = "";

    public static final String DEFAULT_SUFFIX = "";
    /** * HiddenHttpMethodFilter过滤器 */
    @Bean
    @ConditionalOnMissingBean(HiddenHttpMethodFilter.class)
    public OrderedHiddenHttpMethodFilter hiddenHttpMethodFilter() {
   
        return new OrderedHiddenHttpMethodFilter();
    }
    //省略部分代码
}
2.页面创建一个 <form> 表单,表单提交方式为 "post"
<!--创建 form表单,指定为 post 方式提交-->
<form th:action="@{/user}" method="post">
    <div class="form-group">
        <label>LastName</label>
        <input name="lastName" type="text" class="form-control" placeholder="zhangsan" th:value="${user.lastName}">
    </div>
    <div class="form-group">
        <label>Email</label>
        <input name="email" type="email" class="form-control" placeholder="zhangsan@qq.com" th:value="${user.email}">
    </div>
</form>   
3.在 <form>表单中,创建一个 input 框,name="_method",value 值就是我们指定的请求方式。
<form th:action="@{/user}" method="post">
    <!--添加隐藏域,指定 name="_method" ,此处指定为"put请求"-->
    <input type="hidden" name="_method" value="put"/>
    <!--指定vlaue="delete" 即表示发送 delete 请求-->
    <!--<input type="hidden" name="_method" value="delete"/>-->

    <div class="form-group">
        <label>LastName</label>
        <input name="lastName" type="text" class="form-control" placeholder="zhangsan" th:value="${user.lastName}">
    </div>
    <div class="form-group">
        <label>Email</label>
        <input name="email" type="email" class="form-control" placeholder="zhangsan@qq.com" th:value="${user.email}">
    </div>
</form>   

博主写作不易,来个关注呗

求关注、求点赞,加个关注不迷路 ヾ(◍°∇°◍)ノ゙

博主不能保证写的所有知识点都正确,但是能保证纯手敲,错误也请指出,望轻喷 Thanks♪(・ω・)ノ

赞(0) 打赏
未经允许不得转载:IDEA激活码 » Spring Boot 中 form 表单发送 put、delete 请求

一个分享Java & Python知识的社区