BeanUtils 是 Apache commons组件的成员之一,主要用于简化JavaBean封装数据的操作。它可以给JavaBean封装一个字符串数据,也可以将一个表单提交的所有数据封装到JavaBean中。使用第三方工具,需要导入jar包:
BeanUtils工具常用工具类有两个:BeanUtils、ConvertUtils。BeanUtils用于封装数据,ConvertUtils用于处理类型转换,常用API如下
|
| 方法 | 描述 | |
|---|---|---|
| BeanUtils对象 | populate(Object bean, Map |
将Map数据封装到指定Javabean中,一般用于将表单的所有数据封装到javabean |
| setProperty(Object obj,String name,Object value) | 设置属性值 | |
| getProperty(Object obj,String name) | 获得属性值 |
定义转换器必须实现Converter接口
将字符串转换为java.sql.Date类型
将类型为Date但值为String的变量的值转换为Date类型
设置属性
获取属性
String name = BeanUtils.getProperty(bean, "name");
封装表单数据,使用Map 模拟request.getParameterMap()
拷贝属性
对象中的属性值对拷
BeanUtils.copyProperties(p,d);
p是等待被赋值的对象,d是源对象,将d中属性值赋值的p中对应的字段,d中有的属性p中必须有,p可以有更多属性
谨慎使用这个copyproperties这个功能,相同的属性都会被替换,不管是否有值
ConvertUtils 进行数据转换
ConvertUtils 是 Commons-BeanUtils 包中的一个数据类型转换工具类,主要用来在字符串和各种类型数据间进行转换,还包括对数组的转换
/*** 将字符串数组转成长整型数组* ["123","343",69"] -> [123,343,69]*/public static long[] getParamValues(HttpServletRequest req, String name){String[] values = req.getParameterValues(name);if(values==null) return null;return (long[])ConvertUtils.convert(values, long.class);}
int val = ConvertUtils.convert("2343",int.class)
/*** 功能描述:根据request参数名称获得request参数<T>* Created on 2008-7-7* @param <T>* @param request request* @param paramName 参数名称* @param T 参数类的类型* @return 参数<T>*/protected <T> T getParameterByName(HttpServletRequest request,String paramName, Class<T> T) {String pValue = request.getParameter(paramName);log.debug("参数(" + paramName + ") = " + pValue);if (StringUtils.isBlank(pValue)) {return null;}return (T) ConvertUtils.convert(pValue, T);}

