Spring mvc utilise les méthodes put et delete pour implémenter les problèmes de passage de paramètres

零到壹度
Libérer: 2023-03-23 06:12:02
original
3214 Les gens l'ont consulté

Cet article partage avec vous une explication détaillée du problème de passage de paramètres à l'aide des méthodes put et delete dans spring mvc. Le contenu est assez bon. J'espère qu'il pourra aider les amis dans le besoin

<.> Récemment, j'ai modifié l'interface dans un projet précédent, en utilisant resutful, et l'arrière-plan n'a pas pu recevoir les paramètres en utilisant la méthode delete. Après avoir vérifié les informations pertinentes, j'ai découvert que springmvc ne prend pas en charge la méthode delete, je dois donc le faire. ajoutez un filtre à web.xml

<filter>
	<!--该过滤器用于处理post请求转换为标准的delete与put请求 -->
	<filter-name>HiddenHttpMethodFilter</filter-name>
	<filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
</filter>
<filter-mapping>
	<filter-name>HiddenHttpMethodFilter</filter-name>
	<!--servlet为springMvc的servlet名 -->
	<servlet-name>springMVC</servlet-name>
</filter-mapping>
Copier après la connexion
L'explication pertinente est que springmvc ne prend pas en charge les paramètres de requête put et delete Le code principal du filtre est le suivant

protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain)
		throws ServletException, IOException {

	String paramValue = request.getParameter(this.methodParam);
	if ("POST".equals(request.getMethod()) && StringUtils.hasLength(paramValue)) {
		String method = paramValue.toUpperCase(Locale.ENGLISH);
		HttpServletRequest wrapper = new HttpMethodRequestWrapper(request, method);
		filterChain.doFilter(wrapper, response);
	}
	else {
		filterChain.doFilter(request, response);
	}
}
Copier après la connexion
<. 🎜>Convertir la méthode de publication en une méthode de mise ou de suppression standard

La demande d'accès front-end correspondante est remplacée par

Méthode backend
$.ajax({
	type : "POST",
	url : "demo",
	dataType : "json",
	async : false,
	data : {
		provinceIds : id,
		//该参数指定后台接受方法类型,put/delete
		_method : "delete",
		},
	success : function(data) {
			
	});
Copier après la connexion

@RequestMapping(value = "/demo",method = RequestMethod.DELETE)
@ResponseBody
public Map demo(HttpServletRequest request, HttpServletResponse response,Integer id){
    return null;
    }
Copier après la connexion

Il est à noter que seules les requêtes context -type: application/x-www-form-urlencoded seront filtrées.

Référence :

https://blog.csdn.net/jslcylcy/article/details/52789575

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!