解决form没有put请求的方法和后台用pojo对象接收json数据的方法

本文介绍了HTML form无法直接发送PUT请求的问题,提出通过JavaScript的Ajax解决方法。示例中展示了如何在前端页面设置Ajax请求,并在后台使用@RequestBody注解接收JSON数据的Java代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、html的form是不支持put和delete的请求的,所以需要通过js的ajax请求完成。
前台html页面如下所示:

<div id="dlg" class="easyui-dialog" style="width:400px" data-options="closed:true,modal:true,border:'thin',buttons:'#dlg-buttons'">
                        <form id="fm" method="post" novalidate style="margin:0;padding:20px 50px">
                            <h3>分发信息</h3>
                            <div style="margin-bottom:10px">
                                <input name="host" class="easyui-textbox" required="true" label="分发主机名称:" style="width:100%">
                            </div>
                            <div style="margin-bottom:10px">
                                <input name="ip" class="easyui-textbox" required="true" label="分发IP:" style="width:100%">
                            </div>
                            <div style="margin-bottom:10px">
                                <input name="mode"  class="easyui-textbox" required="true" label="主被动模式:" style="width:100%">
                            </div>
                            <div style="margin-bottom:10px">
                                <input name="user" class="easyui-textbox" required="true" label="用户名:" style="width:100%">
                            </div>
                            <div style="margin-bottom:10px">
                                <input name="passwd"  class="easyui-textbox" required="true" label="密码:" style="width:100%">
                            </div>
                            <div style="margin-bottom:10px">
                                <input name="path"  class="easyui-textbox" required="true" label="传输路径:" style="width:100%">
                            </div>
                        </form>
                    </div>
                    <div id="dlg-buttons">
                        <a id=savebtn href="#" class="easyui-linkbutton" iconCls="icon-ok" style="width:90px">保存</a>
                        <a id=closebtn href="#" class="easyui-linkbutton" iconCls="icon-cancel" onclick="javascript:$('#dlg').dialog('close')" style="width:90px">取消</a>
                    </div>

js请求代码如下:

    $(function() {
        $('#savebtn').click(function() {
            var d = {};
            d.id = fileid;
            var t = $('#fm').serializeArray();
            $.each(t, function() {
                d[this.name] = this.value;
            });
            alert(JSON.stringify(d));
            $.ajax({
                url:'send/add',
                type:"put",
                contentType:"application/json",
                dataType:"json",
                data:JSON.stringify(d),
                timeout:20000,
                success:function(msg){
                   alert('success');
                },
                error:function(xhr,textstatus,thrown){

                }
            });
        });
    });

注意,拼接json字符串的语句,var d={},相当于:var d = new Object();
后台代码如下:

    @ApiOperation(value="按照文件id增加一个发送对象",notes="根据文件id增加一个发送对象")
    @ResponseBody
    @PutMapping(value = "add")
    public boolean insertsendinfobyid(@RequestBody Sendinfo sendinfo){
        sendinfoservice.insertSendinfo(sendinfo);
        return true;
    }

这里,给接收参数添加了@RequestBody,这样就可以在请求中通过json调用了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值