学习记录353@将前端传入的数据封装为对象的两种方法

前端传入数据,后端接收数据,并封装为指定的JavaBean对象,主要有两种方式

方式一

前端以参数–值的方式传递数据,后端使用BeanUtils进行装配

JavaBean

package com.qianfeng.business.vo;

import lombok.Data;

import java.io.Serializable;

@Data
public class RoleVo implements Serializable {
    private String roleName;
    private String roleDescription;
    private Integer perId;
}

前端

$("#submit").click(function () {
                var data1 = {
                    roleName: $("#roleName").val(), roleDescription: $("#roleDes").val(),
                    perIdList: getPerIdList()
                }
                $.post(
                    @"/roles/addRole",
                    data1,
                    function (data) {
                        if (data.code == 100) {
                            alert(data.msg)
                            location.href = data.view
                        } else {
                            alert(data.msg)
                        }
                    },
                    "json"
                )
            })
        })

后端

Map<String, String[]> parameterMap = req.getParameterMap();
RoleVo roleVo=new RoleVo();
BeanUtils.populate(roleVo, parameterMap);

方式二

前端以json字符串的方式传递数据,后端使用json解析并进行装配,因为使用BeanUtils无法解析有复杂属性的对象的,比如对象有个属性是list的,这个时候就必须使用json解析并进行装配了

JavaBean

package com.qianfeng.business.vo;

import lombok.Data;

import java.io.Serializable;
import java.util.List;

@Data
public class RoleVo implements Serializable {
    private String roleName;
    private String roleDescription;
    private List<Integer> perIdList;//beanUtils无法处理集合属性
}

前端

 // 添加数据
            $("#submit").click(function () {
                var data1 = {
                    "roleName": $("#roleName").val(), "roleDescription": $("#roleDes").val(),
                    "perIdList": getPerIdList()
                }
                $.post(
                    "/roles/addRole",
                    JSON.stringify(data1),//转化为json字符串
                    function (data) {
                        if (data.code == 100) {
                            alert(data.msg)
                            location.href = data.view
                        } else {
                            alert(data.msg)
                        }
                    },
                    "json"
                )
            })
        })

后端

private String getJsonStr(HttpServletRequest req) throws IOException {
        ServletInputStream reqInputStream = req.getInputStream();//获取传递过来的数据
        byte[] bytes = new byte[1024];
        reqInputStream.read(bytes);//读取数据
        String jsonStr = new String(bytes, "UTF-8");//转化为字符串
        return jsonStr;
    }

String jsonStr = getJsonStr(req);
ObjectMapper objectMapper = new ObjectMapper();
Object obj = objectMapper.readValue(jsonStr, paramType);//转化为对象
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值