浅谈web工程中BeanUtils的封装MyBeanUtils,populate方法使用 【接收前端form表单数据】

本文介绍如何使用Apache Commons BeanUtils库简化Java Web应用中表单数据的封装过程,通过自定义工具类MyBeanUtils,实现从request请求中快速填充实体类属性,提升开发效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

声明本测试使用JDK9,Tomcat9.0.10 ,IDEA2018.2  ;

 

浅谈  BeanUtils 的封装 , BeanUtils  类中方法  populate  (Object  bean,  Map  properties ); 用于把 form 提交的表单中数据封装在 bean中;

request  中相比于 getParameter (   标签 id )  单个获取 属性值将 ,提高效率简化代码;

抽取为MyBeanUtils 以后,更为便捷  ,jar 下载地址   repository  仓库搜索下载:  使用 maven 可直接配置 依赖;


抽取的工具类如下: 

package com.baidu.utils;
import org.apache.commons.beanutils.BeanUtils;
import java.util.Map;
/**
 * @auther SyntacticSugar
 * @data 2018/10/13 0013下午 1:45
 */
public class MyBeanUtils {
    public static <T>T populate(Class<T> clazz, Map<String, String[]> map){
        Object obj=null;
        try {
            obj = clazz.getDeclaredConstructor().newInstance();
            BeanUtils.populate(obj, map);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return (T)obj;
    }
}

 实例中使用场景,主要在注册 时候 form  表单提交的数据 进行封装  ;

实体bean ,User  类的成员属性 很多的时候 ,从request 请求中一个个获取  表单数据 效率低下 ,例如以下User 的成员属性如下:

 

普通代码来获取并封装数据如下 ,其实也没多少  一顿复制也可以完成,再多一些就凉凉了:

  //1.获取用户数据   封装到User对象中
        String id = request.getParameter("id");
        String name = request.getParameter("name");
        String sex = request.getParameter("sex");
        String address = request.getParameter("address");
        String email = request.getParameter("email");
        String qq = request.getParameter("qq");
        String age = request.getParameter("age").equals("")?"18":request.getParameter("age");

        //2.封装数据
        User user = new User();
        user.setId(Integer.valueOf(id));
        user.setName(name);
        user.setSex(sex);
        user.setAddress(address);
        user.setEmail(email);
        user.setQq(qq);
        user.setAge(Integer.valueOf(age));

使用工具类进行封装数据:

User user = MyBeanUtils.populate(User.class, request.getParameterMap());

就一句话,没看错,如果异常直接try/catch  下即可;

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值