BeanUtils 是 Apache commons组件的成员之一,主要用于简化JavaBean封装数据的操作。它可以给JavaBean封装一个字符串数据,也可以将一个表单提交的所有数据封装到JavaBean中。使用第三方工具,需要导入jar包:
image.png
BeanUtils工具常用工具类有两个:BeanUtils、ConvertUtils。BeanUtils用于封装数据,ConvertUtils用于处理类型转换,常用API如下

|

方法 描述
BeanUtils对象 populate(Object bean, Mapproperties) 将Map数据封装到指定Javabean中,一般用于将表单的所有数据封装到javabean
setProperty(Object obj,String name,Object value) 设置属性值
getProperty(Object obj,String name) 获得属性值

定义转换器必须实现Converter接口
将字符串转换为java.sql.Date类型
将类型为Date但值为String的变量的值转换为Date类型
image.png

设置属性

提供一个标准类,有getter,setter构造方法
image.png
image.png

获取属性

  1. String name = BeanUtils.getProperty(bean, "name");

封装表单数据,使用Map 模拟request.getParameterMap()
image.png

拷贝属性

对象中的属性值对拷
image.png
BeanUtils.copyProperties(p,d);
p是等待被赋值的对象,d是源对象,将d中属性值赋值的p中对应的字段,d中有的属性p中必须有,p可以有更多属性
image.png
谨慎使用这个copyproperties这个功能,相同的属性都会被替换,不管是否有值
image.png

ConvertUtils 进行数据转换

ConvertUtils 是 Commons-BeanUtils 包中的一个数据类型转换工具类,主要用来在字符串和各种类型数据间进行转换,还包括对数组的转换

  1. /**
  2. * 将字符串数组转成长整型数组
  3. * ["123","343",69"] -> [123,343,69]
  4. */
  5. public static long[] getParamValues(HttpServletRequest req, String name){
  6. String[] values = req.getParameterValues(name);
  7. if(values==null) return null;
  8. return (long[])ConvertUtils.convert(values, long.class);
  9. }
  1. int val = ConvertUtils.convert("2343",int.class)
  1. /**
  2. * 功能描述:根据request参数名称获得request参数<T>
  3. * Created on 2008-7-7
  4. * @param <T>
  5. * @param request request
  6. * @param paramName 参数名称
  7. * @param T 参数类的类型
  8. * @return 参数<T>
  9. */
  10. protected <T> T getParameterByName(HttpServletRequest request,
  11. String paramName, Class<T> T) {
  12. String pValue = request.getParameter(paramName);
  13. log.debug("参数(" + paramName + ") = " + pValue);
  14. if (StringUtils.isBlank(pValue)) {
  15. return null;
  16. }
  17. return (T) ConvertUtils.convert(pValue, T);
  18. }