Comment utiliser les requêtes PUT et Supprimer dans SpringBoot
May 13, 2023 pm 12:16 PMLes requêtes PUT et Delete sont utilisées
Dans le formulaire Form, seules les méthodes get et post sont prises en charge. Afin d'implémenter la méthode put
, nous pouvons l'implémenter à travers les trois étapes suivantes
1) Configurer HiddenHttpMethodFilter dans SpringMVC
.2) Créez un formulaire de publication de page
3) Créez un élément d'entrée, name="_method", la valeur est la méthode de requête spécifiée
Parmi eux, dans la classe HiddenHttpMethodFilter
obtenez la valeur de "_method " et obtenez la nouvelle méthode de requête.
<input type="hidden" name="_method" value="put" th:if="${employee!=null}"/>
La ème balise est le modèle thymeleaf, ce qui signifie qu'elle ne prendra effet que lorsque l'employé n'est pas vide et que la valeur mise n'est pas sensible à la casse.
Dans la nouvelle version de SpringBoot, cette requête put ne fonctionnait pas. La raison en est que Springboot se configure automatiquement, ce qui nous aide à omettre la première étape de configuration. La méthode de code ci-dessus consiste à réaliser une configuration automatique, mais comme l'annotation @ConditionalOnProperty limite la configuration automatique, la valeur par défaut false n'active pas la configuration, donc la soumission put. de la page ne peut pas être utilisé.
Solution
Configurez dans le fichier de configuration des propriétés pour activer la configuration automatique : spring.mvc.hiddenmethod.filter.enabled=true.
De plus, les requêtes DELETE peuvent également être paramétrées de la même manière.
<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>
Comment prendre en charge les requêtes put/delete
Tous ceux qui ont étudié mvc savent que si vous souhaitez prendre en charge ces deux requêtes spéciales, vous devez d'abord configurer les filtres suivants dans 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>
Mais SpringBoot ne le fait pas C'est gênant, car cela nous a aidé à intégrer HiddenHttpMethodFilter dans le conteneur IOC par défaut, donc son utilisation est extrêmement simple :
1 Configurez-le dans application.properties
#开启支持put delete请求的过滤器 spring.mvc.hiddenmethod.filter.enabled=true
2.
Seulement Vous devez ajouter le champ caché suivant au formulaire de demande de publication :<!--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; }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Article chaud

Outils chauds Tags

Article chaud

Tags d'article chaud

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Comment Springboot intègre Jasypt pour implémenter le chiffrement des fichiers de configuration

Comment utiliser Redis pour implémenter des verrous distribués dans SpringBoot

Comment résoudre le problème selon lequel Springboot ne peut pas accéder au fichier après l'avoir lu dans un package jar

Comparaison et analyse des différences entre SpringBoot et SpringMVC

Comment SpringBoot personnalise Redis pour implémenter la sérialisation du cache

Comment obtenir la valeur dans application.yml au Springboot

Comment implémenter Springboot+Mybatis-plus sans utiliser d'instructions SQL pour ajouter plusieurs tables

Comment utiliser la méthode de requête PUT dans jQuery ?
