ajax提交复杂对象数据

public class RouteItemManageReq {
    private List<WorkNodeReq> targetNodes;
    private RouteItemReq obj;
    public List<WorkNodeReq> getTargetNodes() {
        return targetNodes;
    }
    public void setTargetNodes(List<WorkNodeReq> targetNodes) {
        this.targetNodes = targetNodes;
    }
    public RouteItemReq getObj() {
        return obj;
    }
    public void setObj(RouteItemReq obj) {
        this.obj = obj;
    }
}
    public @ResponseBody List<SpiderBaseRespCenterExt> pushAddRouteItem(RouteItemManageReq req,Model model) {
        return nodeManageService.pushAddRouteItem(req);
    }

要在ajax中提交类似这样的结构,不能直接将js直接附加到ajax请求的data上,否则不管是数组还是属性都会以obj[prop][subprop]的方式传递到服务端,导致spring mvc无法解析而报错。

所以,如果在ajax中需要通过拼接成string的方式传递。类似如下:

            for(var x=0;x<targetNodes.length;x++) {
                formData = formData + "targetNodes[" + x + "].clusterName=" + targetNodes[x].split(":")[0] + "&";
                formData = formData + "targetNodes[" + x + "].ip=" + targetNodes[x].split(":")[1] + "&";
                formData = formData + "targetNodes[" + x + "].port=" + targetNodes[x].split(":")[2] + "&";
            }
            formData = formData + "obj.routeItem.serviceId=" + $("#myModal-route input[name=‘serviceId‘]").val() + "&";
            formData = formData + "obj.routeItem.systemId=" + $("#myModal-route input[name=‘systemId‘]").val() + "&";
            formData = formData + "obj.routeItem.subSystemId=" + $("#myModal-route input[name=‘subSystemId‘]").val() + "&";
            formData = formData + "obj.routeItem.appVersion=" + $("#myModal-route input[name=‘appVersion‘]").val() + "&";
            formData = formData + "obj.routeItem.companyId=" + $("#myModal-route input[name=‘companyId‘]").val() + "&";
            formData = formData + "obj.routeItem.clusterName=" + $("#myModal-route input[name=‘clusterName‘]").val();

            $.ajax({
                url: "/middle/00000110.json",    //请求的url地址
                dataType: "json",   //返回格式为json
                // async: false, //请求是否异步,默认为异步,这也是ajax重要特性
                data: formData,    //参数值
                type: "GET",   //请求方式
时间: 2024-10-23 11:57:34

ajax提交复杂对象数据的相关文章

spring mvc接收ajax提交的JSON数据,并反序列化为对象

需求:spring mvc接收ajax提交的JSON数据,并反序列化为对象,代码如下: 前台JS代码: //属性要与带转化的对象属性对应 var param={name:'语文',price:16}; $.ajax({ url: "/book/adddata", type: "POST", dataType: 'json', //必需设定,后台@RequestBody会根据它做数据反序列化 contentType:"application/json&quo

spring ajax提交并返回数据方式

jsp $('#userId').change(function() { $.ajax({ url: "${ctx}/test/checkUser.do", contentType: "application/json;charset=utf-8", type: "get", data:{ userId:$("#userId").val() }, success: function(data) { if(data!=''){

Ajax 提交KindEditor的数据

这次我是在EasyUI中使用了KindEditor的编辑器,按照官方给的代码,总是无法获取编辑器里面的值(内容),如下: KindEditor.ready(function (K) { var editor1 = K.create('#content', { cssPath: '../js/plugins/code/prettify.css', uploadJson: 'upload_json.ashx', fileManagerJson: 'file_manager_json.ashx', a

沫沫金 - jQuery序列化form表单【支持ajax提交form对象表单entity.xxx】

需要form表单提交,大表单对字段后台人工处理太麻烦.还是选择form表单对象(entity.xx)提交方便,那么怎么ajax提交这样的form对象表单呢? 命名jquery.commons.js内容如下 /**  * FORM对象表单ajax提交前数据处理方法  * @param frm  * @returns JSON Object  */ function getFormJson(frm) {     var o = {};     var a = $(frm).serializeArra

jquery序列化from表单使用ajax提交返回json数据(使用struts2注解result type = json)

1.action类引入struts2的"json-default"拦截器栈 @ParentPackage("json-default") //示例 @ParentPackage(WapBaseAction.WAP_PACKAGE) //WAP_PACKAGE继承了json-default @Namespace("/") public class ModifyResumeAction extends WapBaseAction {... [emai

ajax 提交 json格式数据到后台

例子:$.ajax({ type: 'POST', url: "/ROOT/modify.do", contentType: "application/json",//如果想以json格式把数据提交到后台的话,这个必须有,否则只会当做表单提交 data: JSON.stringify({"name":"sam","age":"12"}),//JSON.stringify()必须有,否则只

关于上传文件 非ajax提交 得到后台数据问题

<form name="configForm" id="configForm" method="post" action="" > .......... </form> 根据id获得表单数据然后发送ajax请求,获得后台返回数据,处理数据,完美. 但是如果需要上传文件, <tr> <td class="fontSize">请选择文件:</td> &

jquery Ajax提交表单数据

//表单中控件的name要和实体类字段属性一致 $.ajax({ cache: true, type: "POST", url:ajaxCallUrl, data:$('#yourformid').serialize(),// 你的formid async: false, error: function(request) { alert("Connection error"); }, success: function(data) { $("#common

ajax提交数据,回调函数不执行或总是执行error回调函数的问题

jsp页面: <form id="itemAddForm" class="itemForm" method="post"> <div id="tab1" class="tabcontent"> <div class="form"> <div class="form_row"> <label><b>