BeanUtils
BeanUtils是Apache commens组件里面的成员,由Apache提供的一套开源api,用于简化对javaBean的操作,能够对基本类型自动转换。
当javaBean中出现非基本类型数据的私有化属性,并且需要对该数据进行封装时,就要去注册该数据类型的类型转换器了,不然就会出现错误,比如对象中存在日期(date)类型。
日期类型转换出错:org.apache.commons.beanutils.converters.DateConverter toDate 警告: DateConverter does not support default String to ‘Date’ conversion,可以看出工具类converters在转换的时候出现了错误
BeanUtils中的converter是一个接口,有很多的实现类,我们可以使用里面的实现类来做日期类型的转换或者说我们可以自己去注册个类型转换器。
使用sql.date不报错,但是使用util.date报错的原因:
sql.date的格式是:yyyy-MM-dd
util.date的格式是:yyy-MM-dd HH:mm:ss
页面中使用<input type="date">
,request拿到该输入框的值的类型为string类型,格式为yyyy-MM-dd,因此可以对应sql.date的类型,但是无法匹配对应util.date的类型,所以sql.date不会报错,util.date会报错。
建议使用如下代码实现日期类型的转换:
DateConverter converter = new DateConverter();
converter.setPattern(new String("yyyy-MM-dd"));
ConvertUtils.register(converter,Date.class);
直接插入上述的代码即可: