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", //请求方式

拼接其实是个很不好的实现,维护成本高,极容易出错,所以建议大家使用js模板库比如jsrender,可参考http://www.cnblogs.com/zhjh256/p/5978907.html。

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

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

    需求:spring mvc接收ajax提交的JSON数据,并反序列化为对象,代码如下: 前台JS代码: //属性要与带转化的对象属性对应 var param={name:'语文',price:16}; ...

  2. 使用ajax提交的json数据,产生筹码问题

    使用ajax提交的json数据,我们必须添加produces注解,如下所示.否则将会产生乱码 方法一:添加produces注解 @ApiOperation(value = "删除日志&quo ...

  3. 使用@RequestBody注解获取Ajax提交的json数据

    最近在学习有关springMVC的知识,今天学习如何使用@RequestBody注解来获取Ajax提交的json数据内容. Ajax部分代码如下: 1 $(function(){ 2 $(" ...

  4. Ajax 提交KindEditor的数据

    这次我是在EasyUI中使用了KindEditor的编辑器,按照官方给的代码,总是无法获取编辑器里面的值(内容),如下:         KindEditor.ready(function (K) { ...

  5. ajax提交含有html数据时的处理方法

    这两天在做一个文章内修改的功能,由于前端选用的Extjs控件库,于是就使用Ext.form.HtmlEditor. 在使用ajax提交数据的时候,需要提交包含有html代码的数据.这时候问题就来了,不 ...

  6. MVC中用ajax提交json对象数组

    应用场景:在前端用ajax向服务器提交json对象数组,在controller的以对象数组作为函数的参数,提交的json数组直接转为服务器端的对象数组. 如: 要将json对象数组[{Id:1,Nam ...

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

    1.action类引入struts2的"json-default"拦截器栈 @ParentPackage("json-default") //示例 @Paren ...

  8. ajax 提交 json格式数据到后台

    例子:$.ajax({ type: 'POST', url: "/ROOT/modify.do", contentType: "application/json" ...

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

    <form name="configForm" id="configForm" method="post" action=" ...

随机推荐

  1. ubuntu下解决wireshark权限问题

    wireshark要监控eth0,但是必须要root权限才行.但是,直接用root运行程序是相当危险,也是非常不方便的. 解决方法如下: 1.添加wireshark用户组 sudo groupadd ...

  2. U3D中IOS平台泛型方法尽少使用

    U3D的IOS最小运行库use micro mscorlib是不包含泛型反射方法的,如FieldType.GetGenericArguments方法.所以尽量少用List而直接使用array. 另外请 ...

  3. POJ 1186 方程的解数

    方程的解数 Time Limit: 15000MS   Memory Limit: 128000K Total Submissions: 6188   Accepted: 2127 Case Time ...

  4. 编译升级php之路(5.5.7 到 5.5.37)

    为在一台旧服务器上能使用slim,共经历了: 1.安装composer(需要高版本php,原来是5.5.7) 2.升级php版本到5.5.37(编译出错,准备使用docker) 3.升级centos内 ...

  5. [原]如何在Android用FFmpeg+SDL2.0解码图像线程

    关于如何在Android上用FFmpeg+SDL2.0解码显示图像参考[原]如何在Android用FFmpeg+SDL2.0解码显示图像 ,关于如何在Android使用FFmpeg+SDL2.0解码声 ...

  6. android xml 常用控件介绍

    android常用控件介绍 ------文本框(TextView)     ------列表(ListView)     ------提示(Toast)     ------编辑框(EditText) ...

  7. HTML5[3]:中文换行

    保证中文每行第一个字,不会出现标点符号 p { white-space: pre-wrap; }

  8. linux主机间复制文件

    命令基本格式: 1.从 本地 复制到 远程    * 复制文件:          * 命令格式:                  scp local_file remote_username@re ...

  9. SQL Server 2012:SQL Server体系结构——一个查询的生命周期(第3部分)(完结)

    一个简单的更新查询 现在应该知道只读取数据的查询生命周期,下一步来认定当你需要更新数据时会发生什么.这个部分通过看一个简单的UPDATE查询,修改刚才例子里读取的数据,来回答. 庆幸的是,直到存取方法 ...

  10. Python+Selenium进行UI自动化测试项目中,常用的小技巧2:读取配置文件(configparser,.ini文件)

    在自动化测试项目中,可能会碰到一些经常使用的但 很少变化的配置信息,下面就来介绍使用configparser来读取配置信息config.ini 读取的信息(config.ini)如下: [config ...