前台参数封装为对象数组及后台参数解析

当传入后台参数太多并且这些参数属于某个类时,可以把这些参数封装成对象,形成对象数组,这样,可以使对象自身的参数一一对应,并把封装好的对象数组,赋给一个参数,通过这一个参数,把对象所有的值传入后台,再通过解析,把这个参数解析成对象数组(此时值已经对应好了),后台写方法时需要什么参数直接get就行了。


如何在前台(以js页面为例)把众多参数对应的封装成对象数组:

// 提交
saveRoleAccount: function() {

    // 定义传入后台的参数
    var param = {
        jsonStr: '',
        deleteIds: '',
        roleId: ''
    }
    
    roleId = GLOBAL.ID;
    deleteIds = $("#deleteIds").val(deleteIdArr.join()).val();

    // 定义user对象,放对象的参数
    var user = {};

    // 获取user对象的属性值
    user.userAccount = $this.val();
    //电话号码
    user.userPhoneNumber = $phone.val();
    //用户id
    user.id = id;

    // 定义arr对象数组 放入的是对象 比如:[{a1,b1,c1},{a2,b2,c2},{a3,b3,c3},{a4,b4,c4},{a5,b5,c5}]
    var arr = [];
    //  把对象放入对象数组arr中
    arr.push(user);

    //  JSON.stringify() 方法是将一个JavaScript值(对象或者数组)转换为一个 JSON字符串
    // 把arr字符串放入jsonStr 中,所以我们只需要把jsonStr 传入后台就能得到arr中所有的参数
    param.jsonStr = JSON.stringify(arr);

    param.roleId = roleId;
    param.deleteIds = deleteIds;
    //  调用方法,在这个方法通过ajax里把值传入后台
    submitAccount(param);
},

后台接收:

/**
     * saveAccountRole:(设置账号角色). <br/>
     * @param jsonStr 前台数据 json字符串
     * @param deleteIds 删除id
     * @param roleId 角色id
     */
@RequestMapping(value = "/auth/saveAccountRole.do", method = RequestMethod.POST)
@ResponseBody 
public String saveAccountRole(String jsonStr, String deleteIds, Long roleId) {
    //获取角色list数据(对象数组)
    List < SysUserRole > userList = new ArrayList < SysUserRole > ();
    if (StringUtils.isNotBlank(jsonStr)) {
        userList = JSON.parseArray(jsonStr, SysUserRole.class);
    }
    try {
        //保存角色信息
        authservice.saveRoleAccount(userList, deleteIds, roleId);
    } catch(Exception e) {
        return JSONUtil.error(e.getMessage());
    }
    return JSONUtil.success("保存成功");
}

 

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值