BeanUtils工具类介绍
BeanUtils工具类,简化数据封装
* 用于封装JavaBean的
1. JavaBean:标准的Java类
1. 要求:
1. 类必须被public修饰
2. 必须提供空参的构造器
3. 成员变量必须使用private修饰
4. 提供公共setter和getter方法
2. 功能:封装数据
2. 概念:
成员变量:
属性:setter和getter方法截取后的产物
例如:getUsername() --> Username--> username
3. 方法:
1. setProperty()
2. getProperty()
3. populate(Object obj , Map map):将map集合的键值对信息,封装到对应的JavaBean对象中
BeanUtils工具类的使用
简单的演示样例
- 导入BeanUtils的工具包(文末提供下载链接)
- 建立一个post请求的注册页面
regist.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>注册页面</title>
</head>
<body>
<form action="/regist" method="post">
<input type="text" placeholder="请输入用户名" name="username"><br>
<input type="radio" name="sex" value="boy">男
<input type="radio" name="sex" value="girl">女
<br>
<input type="text" placeholder="请输入年龄" name="age"><br>
<input type="text" placeholder="请输入qq" name="qq"><br>
<input type="text" placeholder="请输入联系方式" name="tel"><br>
<input type="submit" value="注册">
</form>
</body>
</html>
- 编写javabean封装类
package BeanUtils;/*
*Created by tao on 2020-03-17.
*/
public class Users {
private String username;
private String sex;
private int age;
private String qq;
private String tel;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getQq() {
return qq;
}
public void setQq(String qq) {
this.qq = qq;
}
public String getTel() {
return tel;
}
public void setTel(String tel) {
this.tel = tel;
}
@Override
public String toString() {
return "Users{" +
"username='" + username + '\'' +
", sex='" + sex + '\'' +
", age=" + age +
", qq='" + qq + '\'' +
", tel='" + tel + '\'' +
'}';
}
}
- 编写TestBeanUtils的测试servlet类
package BeanUtils;/*
*Created by tao on 2020-03-17.
*/
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.util.Map;
import org.apache.commons.beanutils.BeanUtils;
/*
* 演示BeanUtils工具类,简化数据封装
*/
@WebServlet("/regist")
public class TestBeanUtils extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//1.设置编码
req.setCharacterEncoding("utf-8");
//2.获取数据
Map<String, String[]> params = req.getParameterMap();
//System.out.println(params);
//3.使用BeanUtils工具类封装User对象
Users user = new Users();
try {
BeanUtils.populate(user, params);
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
System.out.println(user);
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
this.doPost(req, resp);
}
}
使用结果如下
- 在客户端中填写表单
- 后台获取到的信息
BeanUtils工具类的简要说明
- BeanUtils工具类是简化数据封装JavaBean的工具类,在实际开发中可以省区很多的setXxx()的重复操作,使用起来特别爽
- 和JDBC中的BeanPropertyRowMapper的操作类似,BeanPropertyRowMapper是从数据库中获取的数据封装成JavaBean类型的简化操作,而BeanUtils是对从客户端获取的数据封装成javaBean类型的简化操作
- 使用BeanUtils工具类的格式如下,记得抛异常
try {
BeanUtils.populate(user, params);
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
- BeanUtils工具类接收的第一个对象是JavaBean封装类的对象,第二个参数是map集合的键值对信息(要用req.getParameterMap()的方式获取参数)
BeanUtils工具类外包下载链接
点击下载
链接:https://pan.baidu.com/s/18_yOL2r_uxDjfQdJ89Qvpg
提取码:a5xl