博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
BeanUtils简化数据封装
阅读量:4966 次
发布时间:2019-06-12

本文共 2144 字,大约阅读时间需要 7 分钟。

BeanUtils主要用来封装JavaBean的。

1.什么是JavaBean

JavaBean指的是标准的类。

要求:

1. 类必须被public修饰

2. 必须提供空参的构造器
3. 成员变量必须使用private修饰
4. 提供公共setter和getter方法

 

2.首先要知道成员变量和属性的区别

成员变量就不用说了。

属性其实和成员变量是不一样的。

一个类如果有一个成员变量String name,有一个getter方法。

这个方法叫getName()。

但是方法名可以该的,例如改为getApple()。

那么apple就是属性。

 

3.几个常用的方法

1. setProperty()

2. getProperty()
3. populate(Object obj , Map map):将map集合的键值对信息,封装到对应的JavaBean对象中

 

4.示例

//1.设置编码        req.setCharacterEncoding("utf-8");       /* //2.获取请求参数        String username = req.getParameter("username");        String password = req.getParameter("password");        //3.封装user对象        User loginUser = new User();        loginUser.setUsername(username);        loginUser.setPassword(password);*/        //2.获取所有请求参数        Map
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工具类的使用

  1、首先导入BeanUtils工具类的jar包

        commons-beanutils-1.8.0.jar

        commons-logging-1.1.1.jar

   2、setPropertity(Object bean,String name,Object value)方法

      作用:为实体类bean的name属性设置属性值value(属性值为Object类型,可以以其他类型的对象为值)

  3、populate(Object bean,Map properties)方法

      作用:将map中的键值对,赋值给实体类bean的对应属性

         populate封装对象时,实际上是调用了该对象所属类的set方法,因此页面表单内元素的name属性值一定要与实体类中的属性名一致,

         也就是与set方法中去掉set,并将剩下字符串的首字母小写的到的字符串一致

二、自定义类封装表单数据

  步骤:

    1、通过request.getParameterMap()方法,获取存储表单数据的map

    2、通过BeanUtils工具类的populate(t,map)方法,给实体类对象赋值

    3、返回实体类对象

代码:

public class WEBUtils {      public static 
T populateObject(HttpServletRequest request,T t){ Map
map = request.getParameterMap(); System.out.println(map); try { BeanUtils.populate(t, map); } catch (Exception e) { e.printStackTrace(); } return t; } }

 

 注意:为了使自定义的工具类适用于所有实体类,我们将方法的参数设置为泛型,根据调用者传递的实体类对象和请求参数封装表单数据

转载于:https://www.cnblogs.com/chichung/p/10321294.html

你可能感兴趣的文章
python 进程间通信
查看>>
深拷贝 vs 浅拷贝 释放多次
查看>>
Javascript 有用参考函数
查看>>
点群的判别(三)
查看>>
GNSS 使用DFT算法 能量损耗仿真
查看>>
【转】Simulink模型架构指导
查看>>
MYSQL数据库的导出的几种方法
查看>>
SQL Server-5种常见的约束
查看>>
硬件之美
查看>>
[转载]java开发中的23种设计模式
查看>>
表格的拖拽功能
查看>>
函数的形参和实参
查看>>
文字过长 用 ... 表示 CSS实现单行、多行文本溢出显示省略号
查看>>
1Caesar加密
查看>>
【TP SRM 703 div2 500】 GCDGraph
查看>>
MapReduce 重要组件——Recordreader组件 [转]
查看>>
webdriver api
查看>>
apache 实现图标缓存客户端
查看>>
揭秘:黑客必备的Kali Linux是什么,有哪些弊端?
查看>>
linux系统的远程控制方法——学神IT教育
查看>>