BeanUtils.populate(Object bean, Map properties) 方法实在org.apache.commons.beanutils.BeanUtils包下的一个一个方法。
该方法的方法头
此方法中,有两个参数,Object bean 为一个实体类,Map properties为一个map集合,调用此方法的执行过程为
1、遍历Map集合中的key
2、判断bean实体中是否有相应的属性
3、如果有与bean中对应的属性
4、将与Map集合中对应的value值赋值个bean中的相应的属性
例子:
//1、获取数据
Map<String, String[]> properties = request.getParameterMap();
//2、封装数据
Product product = new Product();
try {
//注意表单的属性的名字(name)是不是与实体Bean里的成员变量是否一致
//表单的名称与实体的名称一致,才能将数据完整封装到实体中
BeanUtils.populate(product, properties);
} catch (IllegalAccessException | InvocationTargetException e) {
System.out.println(e);
}
BeanUtils是由Apache公司开发的针对操作JavaBean的工具包。
对于JavaBean,简单的来说,就是要有一个空参的构造器和对属性的getXXX方法和setXXX方法。
在由JDK提供的默认的API中,有java.beans包,里面有诸如Introspector,BeanInfo,PropertyDescriptor等用来操作JavaBean的方法,
但是由Apache公司开发的BeanUtils会更常用,同时,BeanUtils还需要配合第三方日志工具来使用,这里我们同样使用Apache公司的common logging,
注意:这里Common BeanUtils需配合Common Logging,而不是Log4j,当然Log4j也是Apache公司的,可以下载以备以后使用。
因此我们需要去Apache官网下载【Common BeanUtils】和Log4j工具包: