以json 传递整行对象到后台

          在项目中,一个表格中的数据只有几个字段是需要进行修改的,其他都不变,所以就直接在表格中进行编辑,编辑完成后在保存,进行后台的update操作,

       界面如下:

   

       通常情况下我们会获取所选取行对象的ID,通过循环及简单封装拼凑成一个长String传送过去,并在Service层解释再通过findByID获取实例并update。还有一种方式是将这行数据通过js获取值,逐一传给后台,但是参数多了就显得不是那么的恰当,   对此我们有一种更好的解决方案,即,大家都知道easyui的接收的json,那么我们就可以将整个对象群完整的传输至后台

     前台捕获到的json其结构如下

      


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

 
var rows = $('#dg1').datagrid('getSelections'); 
$.ajax({  
type : "POST", 
url : '/Test/index', 
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'); 
} 
}); 
}else{ 
$.messager.show({ 
title:'提示',msg:'配置失败', 
showType:'fade',style:{right:'',bottom:''} 
}); 
} 
} 
}); 

        后台的实现如下:

       

 
public ActionResult index() { 
User user = (User) SecurityContextUtil.getCurrentUser(); 
if (user == null) { 
user = (User) request.getSession().getAttribute(Constants.USER_OS); 
} 
Json json = new Json(); 
List<SectionGroup> list = json.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; 
} 

     就这样,后台就轻松的拿到了前台的值。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 23
    评论
评论 23
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值