Rumah >Java >javaTutorial >Cara menggunakan permintaan PUT dan Padam dalam SpringBoot

Cara menggunakan permintaan PUT dan Padam dalam SpringBoot

WBOY
WBOYke hadapan
2023-05-13 12:16:061916semak imbas

Permintaan PUT dan Delete gunakan

Dalam borang Borang, hanya kaedah get dan post sahaja disokong Untuk melaksanakan kaedah put

kita boleh melaksanakannya melalui tiga langkah berikut <.>

1) Konfigurasikan HiddenHttpMethodFilter dalam SpringMVC

2) Cipta borang catatan pada halaman

3) Cipta item input, name="_method", nilai adalah yang ditentukan kaedah permintaan

Antaranya, dalam kelas HiddenHttpMethodFilter,

Cara menggunakan permintaan PUT dan Padam dalam SpringBoot

mendapat nilai "_method" dan mendapat kaedah permintaan baharu.

Cara menggunakan permintaan PUT dan Padam dalam SpringBoot

<input type="hidden" name="_method" value="put" th:if="${employee!=null}"/>

Teg ke-1 ialah templat thymeleaf, yang bermaksud ia hanya akan berkuat kuasa apabila pekerja tidak kosong dan nilai yang dimasukkan tidak peka huruf besar-besaran.

Dalam versi baharu SpringBoot, permintaan letak ini tidak berfungsi. Sebabnya ialah springboot mengkonfigurasi secara automatik, yang membantu kami meninggalkan langkah pertama konfigurasi Kaedah kod di atas adalah untuk mencapai konfigurasi automatik, tetapi kerana anotasi @ConditionalOnProperty mengehadkan konfigurasi automatik, palsu lalai tidak mendayakan konfigurasi, jadi penyerahan put. halaman tidak boleh digunakan.

Penyelesaian

Konfigurasikan dalam fail konfigurasi sifat untuk mendayakan konfigurasi automatik: spring.mvc.hiddenmethod.filter.enabled=true.

Selain itu, permintaan DELETE juga boleh disediakan dengan cara yang sama.

<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>

Cara menyokong permintaan letak/padam

Semua orang yang telah mempelajari MVC tahu bahawa jika anda ingin menyokong dua permintaan khas ini, anda mesti mengkonfigurasi penapis berikut terlebih dahulu dalam 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 tidak begitu menyusahkan, kerana ia telah membantu kami memasukkan HiddenHttpMethodFilter ke dalam bekas IOC secara lalai, jadi penggunaannya amat mudah:

1 Dalam Konfigurasi application.properties dalam

#开启支持put delete请求的过滤器
spring.mvc.hiddenmethod.filter.enabled=true

2. Apabila digunakan, ia masih sama seperti springmvc

Cuma tambah medan tersembunyi berikut pada bentuk borang kaedah permintaan pos:

     <!--http请求方式-->
     <form action="..."  method="post">
         <input type="hidden" name="_method" value="put" />
         <!--value值改成delete 请求方式就为delete了-->
     </form>

Perhatikan yang tersembunyi medan di atas Nama mestilah "_method". Jika anda ingin mengubah suainya, anda perlu menambah kacang berikut pada IOC:

@Bean
public HiddenHttpMethodFilter hiddenHttpMethodFilter(){
    HiddenHttpMethodFilter methodFilter = new HiddenHttpMethodFilter();
    methodFilter.setMethodParam("_m");//将隐藏域 _method --> _m
    return methodFilter;
}

Atas ialah kandungan terperinci Cara menggunakan permintaan PUT dan Padam dalam SpringBoot. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam