Heim >Backend-Entwicklung >PHP-Tutorial >Spring MVC verwendet Put- und Delete-Methoden, um Probleme bei der Parameterübergabe zu implementieren

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

零到壹度
零到壹度Original
2018-04-02 16:22:153320Durchsuche

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>

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);
	}
}

Die entsprechende Front-End-Zugriffsanforderung wird in

Backend-Methode

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

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

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!

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