apache BeanUtils工具类
- (1)BeanUtils是什么?
BeanUtils 是 Apache commons组件的成员之一 - (2)有什么用?
主要用于简化JavaBean封装数据的操作。
使用第三方工具,需要导入jar包:
BeanUtils工具类-populate分析
使用步骤
-
1 添加jar到web/WEB-INF/lib目录
-
2 让idea识别
选中所有jar 右键菜单 =》add As Lib… -
3 调用populate()方法
@WebServlet("/demo05")
public class Demo05GetServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request,response);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//没有使用BeanUtils ,写得很麻烦 ,一个一个地获取,再一个一个的设置
User user = new User();
//1.获取所有的参数
Map<String, String[]> map = request.getParameterMap();
//2.赋值给一个User对象
/*
String[] usernames = map.get("username");
user.setUsername(usernames[0]);
String[] passwords = map.get("password");
user.setPassword(passwords[0]);
String[] hobbies = map.get("hobby");
user.setHobby(hobbies);
String[] sexes = map.get("sex");
user.setSex(sexes[0]);
System.out.println(user); */
try {
BeanUtils.populate(user,map);//参1,新建的javabean对象,没有值 参2 有key-value的map
} catch (Exception e) {
e.printStackTrace();
}
System.out.println(user);
}
}
src\com\wzx\beans\User.java
//必须做到让参数的参数名与类的成员变量名一致
public class User {
private String username;
private String password;
private String[] hobby;
private String sex;
- (3)底层原理
(1) 获取key生成set方法
username -->setUsername
(2) 调用同名set方法给成员变量赋值(反射)
obj.setUsername(map.get(key))