BeanUtils工具类,它可以一次性的把所有的请求参数注入到对应的 JavaBean 中使用
经常用于把 Map 中的值注入到 JavaBean 中,或者是对象属性值的拷贝操作
1.BeanUtils 输入第三方工具类,所需 jar 包如下:
commons-beanutils-1.8.0.jar
commons-logging-1.1.1.jar
2.populate(Object bean,Map properties)方法
bean:要注入的 JavaBean 对象
properties:request中封装完毕的数据–getparamterMap()
User user = new User();
try {
BeanUtils.populate(user,req.getParameterMap());
} catch (Exception e) {
e.printStackTrace();
}
3.遍历 req.getParamterMap()
Map<String, String[]> parameterMap = req.getParameterMap();
for(Map.Entry<String,String[]> entry:parameterMap.entrySet()){
System.out.println(entry.getKey() + "=" + Arrays.asList(entry.getValue()));
}
4.编写 WebUtils 工具类
/**
* 把 map 中的值注入到对应的 JavaBean 属性中
* @param value:request.getParameterMap() 获取到 map 集合,为了在 dao、service 层使用,提高耦合度,所以写为 map
* @param bean:注入的对象
* @param <T>:泛型,避免强转
* @return
*/
public static <T> T copyParamToBean(Map value,T bean){
try {
BeanUtils.populate(bean,value);
} catch (Exception e) {
e.printStackTrace();
}
return bean;
}
//使用:
User user = WebUtils.copyParamToBean(req.getParameterMap(),new User());