BeanUtils的基本使用

melodyjerry

发布日期: 2020-03-21 20:58:12 浏览量: 245
评分:
star star star star star star star star star star_border
*转载请注明来自write-bug.com

《HTTP案例学习:用户登录》的学习中,使用到BeanUtils

案例中只涉及到封装username、password两个对象,但是实际上的用户登录界面,有十几个数据对象需要封装。

按原来的方式,是非常麻烦的。期望能够一次把所有参数获取到,并且通过一个方法,一次把所有数据封装成一个对象。

<font color='red' size='5'>BeanUtils,一个工具类,简化数据封装</font>

这里专门挑出来,做一份简单的笔记。

配合【教学视频】【BeanUtils工具类常用方法】 食用更佳。

<!--more-->


我们将原来写的代码,

  1. //2.获取请求参数
  2. String username = req.getParameter("username");
  3. String password = req.getParameter("password");
  4. //3.封装user对象
  5. User loginUser = new User();
  6. loginUser.setUsername(username);
  7. loginUser.setPassword(password);

使用BeanUtils工具类进行封装,

  1. //2.获取所有请求参数
  2. Map<String, String[]> map = req.getParameterMap();
  3. //3.创建User对象
  4. User loginUser = new User();
  5. //3-2.使用BeanUtils封装
  6. try {
  7. BeanUtils.populate(loginUser,map);
  8. } catch (IllegalAccessException e) {
  9. e.printStackTrace();
  10. } catch (InvocationTargetException e) {
  11. e.printStackTrace();
  12. }

会发现只用简单几行代码就完成了封装,而不用和之前一样分别对每个数据进行封装。

BeanUtils

  • 工具类,简化数据封装
  • 用于封装JavaBean
  • JavaBean:标准(简单)的Java类

概念

  • JavaBean
  • 成员变量
  • 属性:setter和getter方法截取后的产物
    • 例如:getUsername() —> Username—> username(大多数下,名字一样)

JavaBean

  • 标准的Java类
  • 一般放在domain等package下

功能

  • <font color='red' size='5'>封装数据</font>

要求

  1. 类必须被public修饰

  2. 必须提供空参的构造器

  3. 成员变量必须使用private修饰

  4. 提供公共setter和getter方法

属性

  • setter和getter方法截取后的产物

  • 例如:getUsername() —> Username—> username(大多数下,名字一样)

调用方法

  1. setProperty()
  • 设置属性值
  1. getProperty()
  • 获取属性值
  1. populate(Object obj, Map map)
  • map集合的键值对信息,封装到对应的JavaBean对象中

Demo

配合 《HTTP案例学习:用户登录》 ,现在New一个BeanUtils.java

  1. package cn.itcast.test;
  2. import cn.itcast.domain.User;
  3. import org.apache.commons.beanutils.BeanUtils;
  4. import org.junit.Test;
  5. import java.lang.reflect.InvocationTargetException;
  6. public class BeanUtilsTest {
  7. @Test
  8. public void test(){
  9. User user = new User();
  10. try {
  11. BeanUtils.setProperty(user,"username","zhangsan");
  12. System.out.println(user);
  13. } catch (IllegalAccessException e) {
  14. e.printStackTrace();
  15. } catch (InvocationTargetException e) {
  16. e.printStackTrace();
  17. }
  18. }
  19. }

控制台输出:

扩展

后来看的一篇博客 【BeanUtils工具类常用方法】,觉得写的很不错,一起记录在这里。


相关资料

【教学视频】:https://www.bilibili.com/video/av70420291?p=143

【BeanUtils工具类常用方法】:https://blog.csdn.net/wzc1991520/article/details/80176679

上传的附件

发送私信

10
文章数
2
评论数
最近文章
eject