BeanUtils是Apache发布的一个便于对象操作的jar工具包,
用在数据库的回传对象中十分方便,例如
//2.获取请求参数
String username = request.getParameter("username");
String password = request.getParameter("password");
//3.封装user对象
User loginUser = new User();
loginUser.setUsername(username);
loginUser.setPassword(password);
但是如果用BeanUtils工具类的话,就可以简单操作,而不用每个元素都获取,而是直接完成操作
//2.获取请求参数
Map<String,String[]> map = request.getParameterMap(); //Map键值对,一个String参数对应多个值
//3.创建User对象
User loginUser =new User();
//3.2使用BeanUtils封装
try {
BeanUtils.populate(loginUser,map);
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
BeanUtils.populate( Object bean, Map properties ),
这个方法会遍历map<key, value>中的key,如果bean中有这个属性,就把这个key对应的value值赋给bean的属性。
对于BeanUtils要有这些要求和约束,而且在进行setProperty()时候要注意,这些操作对应的是属性而不是成员变量。
BeanUtils.setProperty(user , “username”,“zhangsan”);
这里的username 对应的一定是
public String setUsername() {
return username;
}
如果方法是
public String setHehe() {
return username;
}
那么我的函数就应该使用
BeanUtils.setProperty(user , “Hehe”,“zhangsan”);
理论上来说就是setUsername —> Username —>username;
setHehe—>Hehe---->hehe
这就是属性和成员变量的区别。