SpringMvc前端提交多个对象,后台接收

来源:互联网 发布:算法导论 第四版 mobi 编辑:程序博客网 时间:2024/05/21 14:03

这里只介绍将表单对象序列化成Json字符串提交,以List接收[此方法我亲测成功]

  HTML代码:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"        "http://www.w3.org/TR/html4/loose.dtd"><html><head>    <title>submitUserList_4</title>    <meta http-equiv="content-type" content="text/html; charset=utf-8">    <script language="JavaScript" src="/js/jquery.min.js" ></script>    <script type="text/javascript" language="JavaScript">        //将表单序列化成json格式的数据(但不适用于含有控件的表单,例如复选框、多选的select)        (function($){            $.fn.serializeJson = function(){                var jsonData1 = {};                var serializeArray = this.serializeArray();                // 先转换成{"id": ["12","14"], "name": ["aaa","bbb"], "pwd":["pwd1","pwd2"]}这种形式                $(serializeArray).each(function () {                    if (jsonData1[this.name]) {                        if ($.isArray(jsonData1[this.name])) {                            jsonData1[this.name].push(this.value);                        } else {                            jsonData1[this.name] = [jsonData1[this.name], this.value];                        }                    } else {                        jsonData1[this.name] = this.value;                    }                });                // 再转成[{"id": "12", "name": "aaa", "pwd":"pwd1"},{"id": "14", "name": "bb", "pwd":"pwd2"}]的形式                var vCount = 0;                // 计算json内部的数组最大长度                for(var item in jsonData1){                    var tmp = $.isArray(jsonData1[item]) ? jsonData1[item].length : 1;                    vCount = (tmp > vCount) ? tmp : vCount;                }                if(vCount > 1) {                    var jsonData2 = new Array();                    for(var i = 0; i < vCount; i++){                        var jsonObj = {};                        for(var item in jsonData1) {                            jsonObj[item] = jsonData1[item][i];                        }                        jsonData2.push(jsonObj);                    }                    return JSON.stringify(jsonData2);                }else{                    return "[" + JSON.stringify(jsonData1) + "]";                }            };        })(jQuery);        function submitUserList_4() {alert("ok");            var jsonStr = $("#form1").serializeJson();            //console.log("jsonStr:\r\n" + jsonStr);            //alert(jsonStr);            $.ajax({                url: "/user/submitUserList_4",                type: "POST",                contentType : 'application/json;charset=utf-8', //设置请求头信息                dataType:"json",                data: jsonStr,                success: function(data){                    alert(data);                },                error: function(res){                    alert(res.responseText);                }            });        }    </script></head><body>    <h1>submitUserList_4</h1>    <form id="form1">        ID:<input type="text" name="id"><br/>        Username:<input type="text" name="name"><br/>        Password:<input type="text" name="pwd"><br/><br/>        ID:<input type="text" name="id"><br/>        Username:<input type="text" name="name"><br/>        Password:<input type="text" name="pwd"><br/><br/>        <input type="button" value="submit" onclick="submitUserList_4();">    </form></body></html>
Controller层代码
@RequestMapping(value = "/submitUserList_4", method ={RequestMethod.POST})    @ResponseBody    public String submitUserList_4(@RequestBody List<User> users)            throws Exception{       for(User u:users){             userService.save(u);       }        return "success";    }
-----这里对easyUI中easyui-combobox也同样适用

0 1
原创粉丝点击