Form フォームでは、get メソッドと post メソッドのみがサポートされています。put メソッドを実装するには、次の 3 つを使用します。
1) SpringMVCでHiddenHttpMethodFilterを設定します
##2) ページに投稿フォームを作成します##3) 入力項目name="_method"を作成します。値は次のとおりです。指定されたリクエスト メソッド
HiddenHttpMethodFilter クラスで
##「_method」の値を取得し、新しいリクエスト メソッドを取得します。
<input type="hidden" name="_method" value="put" th:if="${employee!=null}"/>
番目のタグは thymeleaf テンプレートです。つまり、employee が空でない場合にのみ有効になり、入力される値は大文字と小文字が区別されません。
当時、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>
<!--增加一个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>
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>
@Bean public HiddenHttpMethodFilter hiddenHttpMethodFilter(){ HiddenHttpMethodFilter methodFilter = new HiddenHttpMethodFilter(); methodFilter.setMethodParam("_m");//将隐藏域 _method --> _m return methodFilter; }
以上がSpringBoot で PUT リクエストと Delete リクエストを使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。