BeanUtils.populate()抛出异常处理

本文介绍了使用BeanUtils.populate方法时遇到的异常情况,当表单字段名与JavaBean的setter方法不匹配(不区分大小写)时,会导致填充失败。此外,还提到了可能存在的commons-beanutils库版本问题,建议使用1.8版本的jar包来解决该问题。通过对请求参数到JavaBean的映射过程的解析,帮助读者理解异常原因并提供了解决策略。
摘要由CSDN通过智能技术生成

关于BeanUtils.populate()抛出异常的原因及处理

/**
     * 把Map中的值注入到对应的JavaBean属性中
     * @param value
     * @param bean
     */
    
    public static <T> T copyParamToBean(HttpHttpRequest req, T bean){
        /*
        * 把所有请求参数注入bean对象中
        * */
        try {
            BeanUtils.populate(bean,req.getParameterMap(););
        } catch (Exception e) {
            e.printStackTrace();
        }
        return bean;
    }
  1. 表单页面中提交的数据所对应name的值和对象类中set方法后名字不一致
用户名称:<input type="text"  placeholder="请输入用户名" name="username" id="username">
private String username;
public void setUsername(String username) {
        this.username = username;
    }

以上示例代码中,表单的name的值“name”和对象类中setUsername方法中set后”Username“相同,注,可不区分大小写
原因是因为populate()方法调用时,会将表单中name属性值前加set形成set方法,再去对象类中找到对应的方法将值注入。

  1. commons-beanutils-1.9.4.jar包的问题
    由于表单提交时可能会缺少成员变量,populate()方法会识别错误,然后报错,目前应该是jar包bug问题,重新下1.8版本的beanutils的jar包就能解决。

以上是个人学习所作笔记,也查阅了他人经验,如有错误,感谢大佬能够请指出。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值