Heim > Artikel > Backend-Entwicklung > Spring MVC verwendet Put- und Delete-Methoden, um Probleme bei der Parameterübergabe zu implementieren
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!