以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 相关文章推荐
JAVASCRIPT 对象的创建与使用
Mar 09 Javascript
永不消失的title提示代码
Feb 15 Javascript
js身份证验证超强脚本
Oct 26 Javascript
JavaScript中“基本类型”之争小结
Jan 03 Javascript
使用Node.js实现一个简单的FastCGI服务器实例
Jun 09 Javascript
详解JS中Array对象扩展与String对象扩展
Jan 07 Javascript
JS短信验证码倒计时功能的实现(没有验证码,只有倒计时)
Oct 27 Javascript
JS对大量数据进行多重过滤的方法
Nov 04 Javascript
jQuery Validate 相关参数及常用的自定义验证规则
Mar 06 Javascript
Ionic2调用本地SQlite实例
Apr 22 Javascript
Vue 利用指令实现禁止反复发送请求的两种方法
Sep 15 Javascript
vue3+typescript实现图片懒加载插件
Oct 26 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 levenshtein()函数用法讲解
2019/03/08 PHP
解决在laravel中leftjoin带条件查询没有返回右表为NULL的问题
2019/10/15 PHP
laravel邮件发送的实现代码示例
2020/01/31 PHP
自动检查并替换文本框内的字符
2006/06/30 Javascript
javascript静态的url如何传递
2007/05/03 Javascript
解读IE和firefox下JScript和HREF的执行顺序
2008/01/12 Javascript
学习ExtJS TextField常用方法
2009/10/07 Javascript
深入分析js中的constructor和prototype
2012/04/07 Javascript
js控制容器隐藏出现防止样式变化的两种方法
2014/04/25 Javascript
JavaScript中使用Object.create()创建对象介绍
2014/12/30 Javascript
AngularJS基础知识笔记之过滤器
2015/05/10 Javascript
JavaScript实现点击按钮直接打印
2016/01/06 Javascript
EditPlus中的正则表达式 实战(4)
2016/12/15 Javascript
javascript ASCII和Hex互转的实现方法
2016/12/27 Javascript
Vue之Vue.set动态新增对象属性方法
2018/02/23 Javascript
vue-cli3.0配置及使用注意事项详解
2018/09/05 Javascript
vue2.0 如何在hash模式下实现微信分享
2019/01/22 Javascript
JS实现的冒泡排序,快速排序,插入排序算法示例
2019/03/02 Javascript
vue实现全匹配搜索列表内容
2019/09/26 Javascript
node.js express框架实现文件上传与下载功能实例详解
2019/10/15 Javascript
Js视频播放器插件Video.js使用方法详解
2020/02/04 Javascript
Python实现抓取城市的PM2.5浓度和排名
2015/03/19 Python
tensorflow 变长序列存储实例
2020/01/20 Python
Python如何发送与接收大型数组
2020/08/07 Python
Python unittest装饰器实现原理及代码
2020/09/08 Python
在Python中实现字典反转案例
2020/12/05 Python
C++和python实现阿姆斯特朗数字查找实例代码
2020/12/07 Python
CSS3 实现飘动的云朵动画
2020/12/01 HTML / CSS
HTML5 LocalStorage 本地存储详细概括(多图)
2017/08/18 HTML / CSS
德国箱包网上商店:koffer24.de
2016/07/27 全球购物
电脑销售顾问自荐信
2014/01/29 职场文书
中秋节超市促销方案
2014/01/30 职场文书
宣传活动总结范文
2014/07/01 职场文书
销售合作意向书范本
2015/05/08 职场文书
2015中秋节晚会开场白
2015/07/30 职场文书
MySQL 逻辑备份 into outfile
2022/05/15 MySQL