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

一、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调用了

猜你喜欢

转载自blog.csdn.net/watcher0111/article/details/80862022
今日推荐