Maison >Java >javaDidacticiel >Comment utiliser les requêtes PUT et Supprimer dans SpringBoot

Comment utiliser les requêtes PUT et Supprimer dans SpringBoot

WBOY
WBOYavant
2023-05-13 12:16:061923parcourir

Les 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

Comment utiliser les requêtes PUT et Supprimer dans SpringBoot

obtenez la valeur de "_method " et obtenez la nouvelle méthode de requête.

Comment utiliser les requêtes PUT et Supprimer dans SpringBoot

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

Notez que le nom du champ caché ci-dessus doit être "_method". Si vous souhaitez le modifier, vous devez ajouter le bean suivant au fichier. CIO :

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

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer