SpringBoot中的PUT和Delete請求使用
PUT和Delete請求使用
在Form表單中,只支持get和post方式,而為了實現(xiàn)put方式
我們可以通過如下三個步驟實現(xiàn)
1)SpringMVC中配置HiddenHttpMethodFilter
2)頁面創(chuàng)建一個post表單
3)創(chuàng)建一個input項,name="_method",值就是指定的請求方式
其中在HiddenHttpMethodFilter類中

獲取"_method"的值,得到新的請求方式。

<input type="hidden" name="_method" value="put" th:if="${employee!=null}"/>
其中th標簽是thymeleaf模板,表示只有當employee不為空時才生效,而value中的put不區(qū)分大小寫。
當時在新版本的SpringBoot中,這個put請求不發(fā)生作用。原因是因為springboot自動配置,幫我們省略了第一步的配置,上面代碼方法就是為了實現(xiàn)自動配置,但是因為注解@ConditionalOnProperty限制了自動配置,默認false不開啟配置,所以頁面的put提交無法使用。
解決辦法
properties配置文件中配置,使之開啟自動配置: spring.mvc.hiddenmethod.filter.enabled=true。
此外,DELETE請求也可以同樣這樣設置。
<form th:action="@{/emp/}+${emp.id}" method="post">
<input type="hidden" name="_method" value="delete"/>
<button type="submit" class="btn btn-sm btn-danger" > 刪除</button>
</form>
如何支持put/delete請求
學過mvc的都知道,想要支持這兩種特殊的請求,首先就要在web.xml中配置下面的過濾器:
<!--增加一個HiddenHttpMethodFilter過濾器:目的是給普通瀏覽器 增加put|delete請求方式--> ? ? <filter> ? ? ? ? <filter-name>HiddenHttpMethodFilter</filter-name> ? ? ? ? <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class> ? ? </filter> ? ? <filter-mapping> ? ? ? ? <filter-name>HiddenHttpMethodFilter</filter-name> ? ? ? ? <url-pattern>/*</url-pattern> ? ? </filter-mapping>
而SpringBoot就沒有這么麻煩了,因為他已經默認幫我們把HiddenHttpMethodFilter納入到IOC容器中了,所以他的使用及其簡單:
1.在application.properties中配置
#開啟支持put delete請求的過濾器 spring.mvc.hiddenmethod.filter.enabled=true
2.使用時依舊和springmvc一樣
只需要在post請求方式的form表單中加入下面的隱藏域:
? ? ?<!--http請求方式--> ? ? ?<form action="..." ?method="post"> ? ? ??? ?<input type="hidden" name="_method" value="put" /> ? ? ??? ?<!--value值改成delete 請求方式就為delete了--> ? ? ?</form>
注意上面隱藏域的name必須為 “_method”,如果想要修改,則需要給IOC加入下面的bean:
@Bean
public HiddenHttpMethodFilter hiddenHttpMethodFilter(){
?? ?HiddenHttpMethodFilter methodFilter = new HiddenHttpMethodFilter();
?? ?methodFilter.setMethodParam("_m");//將隱藏域 _method --> _m
?? ?return methodFilter;
}?以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Spring Cloud Config RSA簡介及使用RSA加密配置文件的方法
Spring Cloud 為開發(fā)人員提供了一系列的工具來快速構建分布式系統(tǒng)的通用模型 。本文重點給大家介紹Spring Cloud Config RSA簡介及使用RSA加密配置文件的方法,感興趣的朋友跟隨腳步之家小編一起學習吧2018-05-05
SpringMVC+Mybatis實現(xiàn)的Mysql分頁數(shù)據(jù)查詢的示例
本篇文章主要介紹了SpringMVC+Mybatis實現(xiàn)的Mysql分頁數(shù)據(jù)查詢的示例,具有一定的參考價值,有興趣的可以了解一下2017-08-08
SpringBoot利用ThreadPoolTaskExecutor批量插入百萬級數(shù)據(jù)的具體實現(xiàn)
ThreadPoolTaskExecutor是Spring提供的任務執(zhí)行器實現(xiàn)之一,允許開發(fā)者配置線程池參數(shù)以適應不同的應用場景,創(chuàng)建 ThreadPoolTaskExecutor 實例并設置核心和最大線程數(shù)等屬性可以優(yōu)化性能,本文介紹了SpringBoot利用ThreadPoolTaskExecutor批量插入百萬級數(shù)據(jù)的具體實現(xiàn)2024-12-12
詳解Spring Boot微服務如何集成fescar解決分布式事務問題
這篇文章主要介紹了詳解Spring Boot微服務如何集成fescar解決分布式事務問題,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-01-01
spring AOP的After增強實現(xiàn)方法實例分析
這篇文章主要介紹了spring AOP的After增強實現(xiàn)方法,結合實例形式分析了spring面向切面AOP的After增強實現(xiàn)步驟與相關操作技巧,需要的朋友可以參考下2020-01-01
MyBatis-Plus 分頁查詢以及自定義sql分頁的實現(xiàn)
這篇文章主要介紹了MyBatis-Plus 分頁查詢以及自定義sql分頁的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-08-08
Mybatis使用JSONObject接收數(shù)據(jù)庫查詢的方法
這篇文章主要介紹了Mybatis使用JSONObject接收數(shù)據(jù)庫查詢,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-12-12
SpringBoot日志配置SLF4J和Logback的方法實現(xiàn)
日志記錄是不可或缺的一部分,本文主要介紹了SpringBoot日志配置SLF4J和Logback的方法實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2025-04-04

