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", //请求方式
拼接其实是个很不好的实现,维护成本高,极容易出错,所以建议大家使用js模板库比如jsrender,可参考http://www.cnblogs.com/zhjh256/p/5978907.html。
ajax提交复杂对象数据的更多相关文章
- spring mvc接收ajax提交的JSON数据,并反序列化为对象
需求:spring mvc接收ajax提交的JSON数据,并反序列化为对象,代码如下: 前台JS代码: //属性要与带转化的对象属性对应 var param={name:'语文',price:16}; ...
- 使用ajax提交的json数据,产生筹码问题
使用ajax提交的json数据,我们必须添加produces注解,如下所示.否则将会产生乱码 方法一:添加produces注解 @ApiOperation(value = "删除日志&quo ...
- 使用@RequestBody注解获取Ajax提交的json数据
最近在学习有关springMVC的知识,今天学习如何使用@RequestBody注解来获取Ajax提交的json数据内容. Ajax部分代码如下: 1 $(function(){ 2 $(" ...
- Ajax 提交KindEditor的数据
这次我是在EasyUI中使用了KindEditor的编辑器,按照官方给的代码,总是无法获取编辑器里面的值(内容),如下: KindEditor.ready(function (K) { ...
- ajax提交含有html数据时的处理方法
这两天在做一个文章内修改的功能,由于前端选用的Extjs控件库,于是就使用Ext.form.HtmlEditor. 在使用ajax提交数据的时候,需要提交包含有html代码的数据.这时候问题就来了,不 ...
- MVC中用ajax提交json对象数组
应用场景:在前端用ajax向服务器提交json对象数组,在controller的以对象数组作为函数的参数,提交的json数组直接转为服务器端的对象数组. 如: 要将json对象数组[{Id:1,Nam ...
- jquery序列化from表单使用ajax提交返回json数据(使用struts2注解result type = json)
1.action类引入struts2的"json-default"拦截器栈 @ParentPackage("json-default") //示例 @Paren ...
- ajax 提交 json格式数据到后台
例子:$.ajax({ type: 'POST', url: "/ROOT/modify.do", contentType: "application/json" ...
- 关于上传文件 非ajax提交 得到后台数据问题
<form name="configForm" id="configForm" method="post" action=" ...
随机推荐
- 使用Object的wait,notify,notifyAll做线程调度
我们知道java中的所有类的祖先都是Object,Object类有四个个方法wait(),wait(long timeout),notify(),notifyAll(),这四个方法可以用来做线程的调度 ...
- javascript 设计模式之观察者模式
观察者模式又叫发布——订阅模式,顾名思义pub——sub就是被动触发的,:不要给我......,我会给你.......就是一个发布订阅的解释,实质就是对程序中的某个对象状态进行监听观察,并且在该对象发 ...
- iOS开发之时间格式的转化
在开发iOS程序时,有时候需要将时间格式调整成自己希望的格式,这个时候我们可以用NSDateFormatter类来处理. 例如:如何将格式为“12-May-14 05.08.02.000000 PM” ...
- .net和java和谐相处之安卓客户端+.net asp.net mvc webapi 2
作为没有花很多时间转java,把java当C#用的我,在做服务器端程序的时候,自然不想考虑java web,java需要学的框架太多了,看了一下Java Servlet,始终没有编码的冲动.经过几天的 ...
- 修改efi分区
换了ssd硬盘,速度真快! 我特意准备了一个efi分区(fat32,忘记指定efi了),然而win10安装时不能指定启动位置,自己创建了一块. 下面我们把让win10使用自己创建的efi分区. 以管理 ...
- Unity 脚本系统
什么是脚本?脚本是一个 MonoBehavior, 继承关系是 MonoBehavior -> Behavior -> Component -> Object GameObject ...
- WINDOWS 2008Server 配置nginx 反向代理服务器
本案例有用过可行 0.先要在域名官网上面配置域名对应的IP地址,然后要在自己路由器上面将80端口映射到要装nginx服务器的IP地址. 1.从官网上面下载nginx1.6.2 WINDOWS版本的 ...
- 使用 Responsive Elements 快速构建响应式网站
Responsive Elements 可以使任何元素来适应和应对他们所占据的区域.这是一个轻量的 JavaScript 库,你可以轻松嵌入到你的项目.元素会更具自己的宽度,自动响应和适应空间的增加或 ...
- iOS-高德地图-手动环境搭建
一. 下载地图包 1. 链接地址: http://lbs.amap.com/api/ios-sdk/download/ 2.需要下载的包,并导入包 (1) MAMapKit-5.framework ...
- iOS-布局-Masonry
一.说明:demo中的举例视图介绍 UIView *_blackView; 作为父视图 UIView *_redView; 与父视图内边距为10 ...