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);
}