以JSON形式将JS中Array对象数组传至后台的方法


Posted in Javascript onJanuary 06, 2014

业务是需要将前台jQuery easyUI DataGrid列表中所选的若干行的数据传到后台进行update操作
以JSON形式将JS中Array对象数组传至后台的方法 

通常情况下我们会获取所选取行对象的ID,通过循环及简单封装拼凑成一个长String传送过去,并在Service层解释再通过findByID获取实例并update

但今次我们需要将整个对象群完整的传输至后台

其结构如下
以JSON形式将JS中Array对象数组传至后台的方法 

选用谷歌的GSON插件及json2.js搭配使用

前台代码如下,简洁起见已去除部分简单验证代码:

var rows = $('#dg1').datagrid('getSelections'); 

$.ajax({ 

cache : false, 

type : "POST", 

url : _basePath + '/sectionGroup/pair', 

data : {rows : JSON.stringify(rows), group_id : group_id, group_name : group_name}, 

success : function(data) { 

if(data.success == true){ 

$.messager.confirm('配置成功','是否刷新列表?', function(r){ 

if (r){ 

$('#dg').datagrid('reload'); 

$('#dg1').datagrid('reload'); 

$('#dg2').datagrid('reload'); 

} 

}); 

}else{ 

$.messager.show({ 

title:'提示',msg:'配置失败', 

showType:'fade',style:{right:'',bottom:''} 

}); 

} 

} 

});

此页面中需要引入json2.js

后台Controller中接收如下:

@RequestMapping(value = "/pair") 

@ResponseBody 

public ResponseData pair(String rows, String group_name, String group_id, HttpServletRequest request) { 

User user = (User) SecurityContextUtil.getCurrentUser(); 

if (user == null) { 

user = (User) request.getSession().getAttribute(Constants.USER_OS); 

} 

Gson gson = new Gson(); 

List<SectionGroup> list = gson.fromJson(rows, new TypeToken<List<SectionGroup>>() {}.getType()); 

for (SectionGroup sectionGroup : list) { 

sectionGroup.setRegion(user.getRegion_id()); 

sectionGroup.setCompany_id(user.getOrg_id()); 

sectionGroup.setGroup_id(group_id); 

sectionGroup.setGroup_name(group_name); 

service.insertEntity(sectionGroup); 

} 

return ResponseData.SUCCESS_NO_DATA; 

}

其中GSON及TypeToken为GSON包中引入类

入参rows应为String型

经过Gson转换后List依旧为普通接口,内部装载前台完整的Object对象

Javascript 相关文章推荐
修改js Calendar日历控件 兼容IE9/谷歌/火狐
Jan 04 Javascript
js+css实现的简单易用兼容好的分页
Dec 30 Javascript
推荐8款jQuery轻量级树形Tree插件
Nov 12 Javascript
jquery图形密码实现方法
Mar 11 Javascript
纯javascript判断查询日期是否为有效日期
Aug 24 Javascript
微信小程序 封装http请求实例详解
Jan 16 Javascript
js+html获取系统当前时间
Nov 10 Javascript
Node Puppeteer图像识别实现百度指数爬虫的示例
Feb 22 Javascript
create-react-app 修改为多入口编译的方法
Aug 01 Javascript
解决js相同的正则多次调用test()返回的值却不同的问题
Oct 10 Javascript
vue element upload组件 file-list的动态绑定实现
Oct 11 Javascript
JS中的变量作用域(console版)
Jul 18 Javascript
js解决弹窗问题实现班级跳转DIV示例
Jan 06 #Javascript
instanceof和typeof运算符的区别详解
Jan 06 #Javascript
jquery使用append(content)方法注意事项分享
Jan 06 #Javascript
javascript客户端遍历控件与获取父容器对象示例代码
Jan 06 #Javascript
Javascript 遍历页面text控件详解
Jan 06 #Javascript
jquery链式操作的正确使用方法
Jan 06 #Javascript
jquery设置text的值示例(设置文本框 DIV 表单值)
Jan 06 #Javascript
You might like
PHP 命令行工具 shell_exec, exec, passthru, system详细使用介绍
2011/09/11 PHP
PHP版 汉字转码的实现详解
2013/06/09 PHP
高性能PHP框架Symfony2经典入门教程
2014/07/08 PHP
yii2 modal弹窗之ActiveForm ajax表单异步验证
2016/06/13 PHP
PC端微信扫码支付成功之后自动跳转php版代码
2017/07/07 PHP
PHP堆栈调试操作简单示例
2018/06/15 PHP
php设计模式之职责链模式实例分析【星际争霸游戏案例】
2020/03/27 PHP
JavaScript 入门基础知识 想学习js的朋友可以参考下
2009/12/26 Javascript
jQuery 如何先创建、再修改、后添加DOM元素
2014/05/20 Javascript
jQuery实现的图片分组切换焦点图插件
2015/01/06 Javascript
javascript实现验证IP地址等相关信息代码
2015/05/10 Javascript
详解Angularjs中的依赖注入
2016/03/11 Javascript
Knockoutjs 学习系列(一)ko初体验
2016/06/07 Javascript
vue2的todolist入门小项目的详细解析
2017/05/11 Javascript
移动端滑动切换组件封装 vue-swiper-router实例详解
2018/11/25 Javascript
优雅的elementUI table单元格可编辑实现方法详解
2018/12/23 Javascript
vuex存值与取值的实例
2019/11/06 Javascript
使用Python的Treq on Twisted来进行HTTP压力测试
2015/04/16 Python
python读取TXT到数组及列表去重后按原来顺序排序的方法
2015/06/26 Python
TensorFlow用expand_dim()来增加维度的方法
2018/07/26 Python
Python爬虫爬取新浪微博内容示例【基于代理IP】
2018/08/03 Python
Django框架组成结构、基本概念与文件功能分析
2019/07/30 Python
Python 使用 PyMysql、DBUtils 创建连接池提升性能
2019/08/14 Python
Python 利用高德地图api实现经纬度与地址的批量转换
2019/08/14 Python
Python爬虫过程解析之多线程获取小米应用商店数据
2020/11/14 Python
Banana Republic欧盟:美国都市简约风格的代表品牌
2018/05/09 全球购物
公共事业管理本科生求职信
2013/10/07 职场文书
推荐信模板
2014/05/09 职场文书
考博专家推荐信
2014/05/10 职场文书
2014年销售工作总结范文
2014/12/01 职场文书
地震慰问信
2015/02/14 职场文书
2015年幼儿园班主任工作总结
2015/05/12 职场文书
小学校园广播稿
2015/08/18 职场文书
运动会广播稿300字
2015/08/19 职场文书
公务员廉洁从政心得体会
2016/01/19 职场文书
Python图像处理库PIL详细使用说明
2022/04/06 Python