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,
mendapat nilai "_method" dan mendapat kaedah permintaan baharu.
<input type="hidden" name="_method" value="put" th:if="${employee!=null}"/>
Salin selepas log masuk
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>
Salin selepas log masuk
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>
Salin selepas log masuk
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
Salin selepas log masuk
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>
Salin selepas log masuk
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;
}
Salin selepas log masuk
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!