Spring MVC verwendet Put- und Delete-Methoden, um Probleme bei der Parameterübergabe zu implementieren

零到壹度
Freigeben: 2023-03-23 06:12:02
Original
3259 Leute haben es durchsucht

Dieser Artikel gibt Ihnen eine detaillierte Erklärung des Parameterübergabeproblems mit den Methoden put und delete in Spring MVC. Ich hoffe, er kann Freunden in Not helfen 🎜 > Kürzlich habe ich die Schnittstelle in einem früheren Projekt mit resutful geändert und der Hintergrund konnte die Parameter nicht mit der Löschmethode empfangen. Nachdem ich die relevanten Informationen überprüft hatte, stellte ich fest, dass springmvc die Löschmethode nicht unterstützt Fügen Sie einen Filter zu web.xml hinzu

Die relevante Erklärung ist, dass springmvc keine Put- und Löschanforderungsparameter unterstützt. Der Kerncode des Filters lautet wie folgt

<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>
Nach dem Login kopieren

Konvertieren Sie die Post-Methode in eine standardmäßige Put- oder Löschmethode
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);
	}
}
Nach dem Login kopieren

Die entsprechende Front-End-Zugriffsanforderung wird in

Backend-Methode < geändert 🎜>

$.ajax({
	type : "POST",
	url : "demo",
	dataType : "json",
	async : false,
	data : {
		provinceIds : id,
		//该参数指定后台接受方法类型,put/delete
		_method : "delete",
		},
	success : function(data) {
			
	});
Nach dem Login kopieren

Es ist zu beachten, dass nur context -type: application/x-www-form-urlencoded-Anfragen gefiltert werden.
@RequestMapping(value = "/demo",method = RequestMethod.DELETE)
@ResponseBody
public Map demo(HttpServletRequest request, HttpServletResponse response,Integer id){
    return null;
    }
Nach dem Login kopieren

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

Das obige ist der detaillierte Inhalt vonSpring MVC verwendet Put- und Delete-Methoden, um Probleme bei der Parameterübergabe zu implementieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!