本文最后更新于:4 个月前
在《HTTP案例学习:用户登录》的学习中,使用到BeanUtils。
案例中只涉及到封装username、password两个对象,但是实际上的用户登录界面,有十几个数据对象需要封装。
按原来的方式,是非常麻烦的。期望能够一次把所有参数获取到,并且通过一个方法,一次把所有数据封装成一个对象。
BeanUtils,一个工具类,简化数据封装
这里专门挑出来,做一份简单的笔记。
配合【教学视频】、【BeanUtils工具类常用方法】 食用更佳。
我们将原来写的代码,
//2.获取请求参数
String username = req.getParameter("username");
String password = req.getParameter("password");
//3.封装user对象
User loginUser = new User();
loginUser.setUsername(username);
loginUser.setPassword(password);
使用BeanUtils工具类进行封装,
//2.获取所有请求参数
Map<String, String[]> map = req.getParameterMap();
//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
- 工具类,简化数据封装
- 用于封装JavaBean的
- JavaBean:标准(简单)的Java类
概念
- JavaBean
- 成员变量
- 属性:setter和getter方法截取后的产物
- 例如:getUsername() –> Username–> username(大多数下,名字一样)
JavaBean
- 标准的Java类
- 一般放在domain等package下
功能
- 封装数据
要求
类必须被public修饰
必须提供空参的构造器
成员变量必须使用private修饰
提供公共setter和getter方法
属性
setter和getter方法截取后的产物
例如:getUsername() –> Username–> username(大多数下,名字一样)
调用方法
setProperty()
- 设置属性值
getProperty()
- 获取属性值
populate(Object obj, Map map)
- 将map集合的键值对信息,封装到对应的JavaBean对象中
Demo
配合 《HTTP案例学习:用户登录》 ,现在New一个BeanUtils.java
package cn.itcast.test;
import cn.itcast.domain.User;
import org.apache.commons.beanutils.BeanUtils;
import org.junit.Test;
import java.lang.reflect.InvocationTargetException;
public class BeanUtilsTest {
@Test
public void test(){
User user = new User();
try {
BeanUtils.setProperty(user,"username","zhangsan");
System.out.println(user);
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}
}
控制台输出:
扩展
后来看的一篇博客 【BeanUtils工具类常用方法】,觉得写的很不错,一起记录在这里。
相关资料
【教学视频】:https://www.bilibili.com/video/av70420291?p=143
【BeanUtils工具类常用方法】:https://blog.csdn.net/wzc1991520/article/details/80176679
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!