springMVC使用PUT、DELETE方法传递参数解决方案
2016-10-11 16:55
513 查看
新项目使用restful风格的编程方式,例student
get方法
/student 对应list查询
/student/{id} 对应id查询
post方法
/student 对应新增
put方法
/student 对应编辑
delete方法
/student 对应批量删除
/student/{id} 对应指定id删除
结果发现使用put与delete方法是,后台接受不到参数,解决方法如下:
在web.xml中新增过滤器
该过滤器的核心方法如下:
前端ajax访问时实例代码如下:
后台接受方法:
get方法
/student 对应list查询
/student/{id} 对应id查询
post方法
/student 对应新增
put方法
/student 对应编辑
delete方法
/student 对应批量删除
/student/{id} 对应指定id删除
结果发现使用put与delete方法是,后台接受不到参数,解决方法如下:
在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>
该过滤器的核心方法如下:
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); } }将post方法转换为标准的put或者delete方法
前端ajax访问时实例代码如下:
$.ajax({ type : "POST", url : "student", dataType : "json", async : false, data : { provinceIds : array, //该参数指定后台接受方法类型,put/delete _method : "delete", }, success : function(data) { });
后台接受方法:
@RequestMapping(value="student",method = RequestMethod.DELETE, produces = {"text/javascript;charset=UTF-8"}) public String del(HttpServletRequest request, HttpServletResponse response) { return null; }
相关文章推荐
- springMVC正确使用GET POST PUT和DELETE方法,如何传递参数
- 资料汇总--Ajax中Put和Delete请求传递参数无效的解决方法(Restful风格)【转】
- Ajax中Put和Delete请求传递参数无效的解决方法(Restful风格)
- Spring boot PUT、DELETE 请求无法定位方法及获取参数解决方案
- 针对RestFul风格的PUT,DELETE请求在SpringMVC的Controller层无法接收参数的解决方案
- Ajax中Put和Delete请求传递参数无效的解决方法(Restful风格
- Struts2中使用GET方式传递中文参数出现乱码的解决方案
- 使用ObjectDataSource注意DeleteMethod、UpdateMethod、Insert等方法中参数的命名约定
- C#方法参数传递-同时使用ref和out关键字
- 使用ioctl向linux内核传递参数的方法实例
- 怎样使用call方法回调方法传递参数
- Ext.data.JsonStore使用HttpProxy加载数据时传递参数的两种方法
- jsp表单get方法中文参数传递乱码问题解决方案
- 使用xmlhttp.send()方法的参数来传递大容量的数据
- 使用ioctl向linux内核传递参数的方法实例
- 使用ObjectDataSource注意DeleteMethod、UpdateMethod、Insert等方法中参数的命名约定
- 二十二:通过引用向方法传递参数(使用out和ref参数)
- 使用xmlhttp.send()方法的参数来传递大容量的数据
- 使用xmlhttp.send()方法的参数来传递大容量的数据
- 在数据绑定控件中使用LinkButton传递参数方法