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); } }
使用结果如下
1. 在客户端中填写表单
2. 后台获取到的信息
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