以JSON形式将JS中Array对象数组传⾄后台的⽅法业务是需要将前台jQuery easyUI DataGrid列表中所选的若⼲⾏的数据传到后台进⾏update操作
通常情况下我们会获取所选取⾏对象的ID,通过循环及简单封装拼凑成⼀个长String传送过去,并在Service层解释再通过findByID获取实例并update
但今次我们需要将整个对象完整的传输⾄后台
其结构如下
选⽤⾕歌的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) {
easyui插件if(data.success == true){
$.firm('配置成功','是否刷新列表?', 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) CurrentUser();
if (user == null) {
user = (User) Session().getAttribute(Constants.USER_OS);
}
Gson gson = new Gson();
List<SectionGroup> list = gson.fromJson(rows, new TypeToken<List<SectionGroup>>() {}.getType());
for (SectionGroup sectionGroup : list) {
sectionGroup.Region_id());
sectionGroup.setCompany_Org_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对象
PS:关于json操作,这⾥再为⼤家推荐⼏款⽐较实⽤的json在线⼯具供⼤家参考使⽤:在线json压缩/转义⼯具:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论