SpringBoot で PUT リクエストと Delete リクエストを使用する方法

WBOY
リリース: 2023-05-13 12:16:06
転載
1885 人が閲覧しました

PUT リクエストと Delete リクエストが使用されます

Form フォームでは、get メソッドと post メソッドのみがサポートされています。put メソッドを実装するには、次の 3 つを使用します。

手順

1) SpringMVCでHiddenHttpMethodFilterを設定します

##2) ページに投稿フォームを作成します

##3) 入力項目name="_method"を作成します。値は次のとおりです。指定されたリクエスト メソッド

HiddenHttpMethodFilter クラスで

##「_method」の値を取得し、新しいリクエスト メソッドを取得します。 SpringBoot で PUT リクエストと Delete リクエストを使用する方法

<input type="hidden" name="_method" value="put" th:if="${employee!=null}"/>
ログイン後にコピー

番目のタグは thymeleaf テンプレートです。つまり、employee が空でない場合にのみ有効になり、入力される値は大文字と小文字が区別されません。 SpringBoot で PUT リクエストと Delete リクエストを使用する方法

当時、SpringBoot の新しいバージョンでは、この put リクエストは機能しませんでした。その理由は、springboot が自動的に構成するため、構成の最初のステップを省略するのに役立ちます。上記のコード メソッドは自動構成を実現するためのものですが、アノテーション @ConditionalOnProperty が自動構成を制限しているため、デフォルトの false では構成が有効になりません。のページは使用できません。

解決策

自動構成を有効にするには、プロパティ構成ファイルで設定します: 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 を勉強したことがある人なら、これら 2 つの特別なリクエストをサポートしたい場合は、まず 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 と同じです。

次の非表示フィールドをポスト リクエスト メソッドのフォーム フォームに追加するだけです:

     <!--http请求方式-->
     <form action="..."  method="post">
         <input type="hidden" name="_method" value="put" />
         <!--value值改成delete 请求方式就为delete了-->
     </form>
ログイン後にコピー

次の点に注意してください。上の隠しフィールド 名前は「_method」である必要があります。変更したい場合は、次の Bean を IOC に追加する必要があります:

@Bean
public HiddenHttpMethodFilter hiddenHttpMethodFilter(){
    HiddenHttpMethodFilter methodFilter = new HiddenHttpMethodFilter();
    methodFilter.setMethodParam("_m");//将隐藏域 _method --> _m
    return methodFilter;
}
ログイン後にコピー

以上がSpringBoot で PUT リクエストと Delete リクエストを使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:yisu.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート