2.SpringBoot处理表单PUT、DELETE请求

SpringBoot处理表单PUT、DELETE请求

SpringMVC 传统的表单提交

由于浏览器只支持发送get和post方式的请求,那么该如何发送put和delete请求呢?

SpringMVC 提供了 HiddenHttpMethodFilter 帮助我们将 POST 请求转换为 DELETE 或 PUT 请求

HiddenHttpMethodFilter 处理put和delete请求的条件:

a>当前请求的请求方式必须为post

b>当前请求必须传输请求参数_method

<form method="post" action="http://localhost:8080/animal/add">
<input type="hidden" value="put" name="_method"/>
	id:<input type="text" name="id"/><br>
	名字:<input type="text" name="name"/><br>
	<input type="submit" value="提交"/>
form>

满足以上条件,HiddenHttpMethodFilter 过滤器就会将当前请求的请求方式转换为请求参数_method的值,因此请求参数_method的值才是最终的请求方式

在web.xml中注册HiddenHttpMethodFilter

<filter>
    <filter-name>HiddenHttpMethodFilterfilter-name>
    <filter-class>org.springframework.web.filter.HiddenHttpMethodFilterfilter-class>
filter>
<filter-mapping>
    <filter-name>HiddenHttpMethodFilterfilter-name>
    <url-pattern>/*url-pattern>
filter-mapping>

SpringBoot 对表单请求方式的支持

spring:
  mvc:
    hiddenmethod:
      filter:
        enabled: true

SpringMVC PUT , DELETE , PATCH 请求方式,提交的表单数据无法接收

  • 配置一个 FormContentFilter 过滤器
    
    <filter>
        <filter-name>formContentFilterfilter-name>
        <filter-class>org.springframework.web.filter.FormContentFilterfilter-class>
    filter>
    <filter-mapping>
        <filter-name>formContentFilterfilter-name>
        <url-pattern>/*url-pattern>
    filter-mapping>

SpringBoot 解决 PUT, DELETE 表单参数

spring:
    formcontent:
      filter:
        enabled: true    #启用 FormContentFilter 过滤器,  默认是 启用的, 可以不用配置

你可能感兴趣的:(SpringBoot,spring,boot,java,spring)