栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SpringMvc处理PUTDELETE请求

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringMvc处理PUTDELETE请求

        我不太明白为什么网上资料对于springmvc如何处理put、delete请求,都是通过在form表单中添加隐藏域_method方式。通过postman,curl是可以发送put,delete请求,但在后端是无法获取到值的。

一、Postman方式提交

        正常创建一个springmvc工程,这里不再介绍,可以参考我之前写的博客。创建一个控制器方法,声明式put方式:

    @RequestMapping(value = "/user", method = RequestMethod.PUT, produces = APPLICATION_JSON_UTF8_VALUE)
    @ResponseBody
    public String user(User user) {
        System.out.println(user);
        return JSONObject.toJSonString(user);
    }

        如果不对springmvc进行配置,上面参数user获取到的值是null,这里需要配置一个过滤器,我这里用的spring版本是5.3.12。

    
        FormContentFilter
        org.springframework.web.filter.FormContentFilter
    

    
        FormContentFilter
        /*
    
二、form表单活ajax方式提交

        由于form表单默认只支持GET、POST两种方式,SpringMvc提供了一个过滤器来间接实现PUT和DELETE。

2.1、配置过滤器
    
    
        HiddenHttpMethodFilter
        org.springframework.web.filter.HiddenHttpMethodFilter
    
    
        HiddenHttpMethodFilter
        /*
    
2.2、设置form表单

增加隐藏域_method,value就是要支持的PUT、DELETE

用户名:
密码:
2.3、请求处理
    @RequestMapping(value = "/user", method = RequestMethod.PUT)
    public String updateUser(String username, String password) {
        System.out.println("update user:"+username+",password:"+password);
        return "success";
    }
三、springboot中put处理

        springboot在底层进行了自动装配,所以不需要开发人员再进行配置,这就是springboot强大之处,具体实现如下:

四、总结

        一个小问题,困惑了很久也搜了很久,都没能找到最理想的结果,最后从一个网页中找到了HttpPutFormContentFilter直觉像是有用,最后通过翻看源码了解了其中内容。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/692777.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号