在Java对象的拷贝过程中,Apache的BeanUtils对日期的支持不是很好,但有扩展,大家可以找到它的日期转换器,注册进去就ok了
创建BeanUtils的子类,把日期转换器注册进去,以后用这个子类来copy对象:
public class BeanUtilEx extends BeanUtils {
private static Map cache = new HashMap();
private static Log logger = LogFactory.getFactory().getInstance(BeanUtilEx.class);
private BeanUtilEx() {
}
static {
// 注册sql.date的转换器,即允许BeanUtils.copyProperties时的源目标的sql类型的值允许为空
ConvertUtils.register(new org.apache.commons.beanutils.converters.SqlDateConverter(null), java.sql.Date.class);
ConvertUtils.register(new org.apache.commons.beanutils.converters.SqlDateConverter(null), java.util.Date.class);
ConvertUtils.register(new org.apache.commons.beanutils.converters.SqlTimestampConverter(null), java.sql.Timestamp.class);
// 注册util.date的转换器,即允许BeanUtils.copyProperties时的源目标的util类型的值允许为空
}
public static void copyProperties(Object target, Object source)
throws InvocationTargetException, IllegalAccessException {
// 支持对日期copy
org.apache.commons.beanutils.BeanUtils.copyProperties(target, source);
}
}
分享到:
相关推荐
6. **国际化支持**:通过与Apache Commons Locale配合,BeanUtils支持国际化和本地化,可以方便地处理不同地区的语言和格式设置。 `commons-license.txt`文件通常包含了Apache Commons BeanUtils的许可协议,它是...
Apache Commons BeanUtils是Java开发中的一个实用工具库,主要用于简化对JavaBean的操作。这个`commons-beanutils-1.9.3.jar`文件是该库的一个版本,它提供了丰富的API来帮助开发者更方便地处理JavaBean对象。在这个...
5. **包装器支持**:BeanUtils还支持Java的包装器类型,这意味着你可以方便地处理Integer、Boolean等包装类的属性,而无需关心它们与原始类型的转换。 6. **自定义转换器**:如果你需要处理一些特殊的类型转换,...
5. **枚举操作**:`EnumUtils`类提供了对Java枚举类型的友好支持,如枚举值的转换和检查。 6. **类型转换**:`TypeConversionUtils`和`ConvertUtils`类提供了类型之间的安全转换,避免了因类型不匹配引发的异常。 ...
4. **处理日期和枚举类型**:BeanUtils提供了对日期和枚举类型的特殊处理,使得这些复杂类型能在Bean复制过程中正确转换。 5. **处理异常**:BeanUtils库在处理过程中会捕获并包装可能抛出的异常,如`...
- **集合操作**:BeanUtils也支持对集合类型的属性进行操作,如列表、数组等。 2. **使用场景**: - **数据绑定**:在Web开发中,BeanUtils常用于将HTTP请求参数绑定到JavaBean对象,简化表单数据处理。 - **...
Apache Commons BeanUtils库还支持处理复杂的类型转换,例如将字符串转换为整型或日期等。此外,它还包含了一些辅助类,如`ConvertUtils`,可以注册自定义的转换器,以便在处理不同类型的数据时更加灵活。 在实际...
4. **集合操作**:BeanUtils还支持对集合类型的属性进行操作,例如可以将数组或列表的元素映射到bean的集合属性上。 5. **异常处理**:在处理bean操作时,BeanUtils会捕获并封装可能抛出的异常,以`...
该包对源码进行了部分修改,使其支持对String与Date之间的类型转换。 2008-07-17更新: 增加了BeanUtils的copyProperty以及copyProperties方法对Date的null值复制功能,取消了当Date为null时的抛异常。 2008-08-25...
5. **国际化支持(Internationalization Support)**:BeanUtils可以与ResourceBundle结合使用,实现基于不同地区的属性值处理。 在实际开发中,BeanUtils常用于以下场景: - 数据绑定:在Web应用中,BeanUtils...
此外,BeanUtils还支持自定义转换器(Converter),这在处理不同类型之间的转换时非常有用。通过注册自定义的转换器,我们可以控制特定属性值的转换逻辑,比如日期字符串到Date对象的转换。 总的来说,BeanUtils是...
4. **动态属性访问:** BeanUtils还支持动态属性操作,即使属性名在运行时才能确定,通过`invokeMethod()`方法可以实现动态调用getter和setter。 5. **异常处理:** 库中内置了对可能出现的异常(如属性不存在或...
9. **Integration with Other Commons Libraries**:Apache Commons BeanUtils与其他Apache Commons库(如Collections、Lang等)兼容,可以一起使用以实现更强大的功能,如集合操作、日期处理等。 10. **Version ...
4. **内建集合操作**:BeanUtils还支持对集合类型的属性进行操作,例如可以将数组或集合转换为JavaBean的属性,反之亦然。 5. **动态Bean访问**:对于那些没有源码或者不完全了解的对象,BeanUtils可以动态地根据其...
6. **国际化支持**:BeanUtils还支持国际化(i18n),通过`ResourceBundle`和`MessageResources`类,可以在不同语言环境下进行属性值的转换和显示。 7. **线程安全性**:由于BeanUtils的一些方法不是线程安全的,...
在处理复杂的数据类型时,BeanUtils也提供了处理日期、数字等类型的转换功能。例如,当源对象和目标对象的属性类型不完全匹配时,BeanUtils会尝试使用ConversionService进行类型转换。 在使用BeanUtils时,需要注意...
6. **国际化支持**:BeanUtils工具包可以与ResourceBundle结合使用,实现基于不同语言和地区的国际化(i18n)处理。 在"java学习笔记——javaweb之BeanUtils、EL、JSTL"这篇博客中,作者可能详细讲解了如何在Java Web...
4. **处理集合属性**:BeanUtils还支持处理集合类型的属性,如List、Set和Map。可以通过`index`或`key`来操作这些集合中的元素。 5. **处理嵌套属性**:可以使用点号分隔的字符串来访问和修改Bean的嵌套属性,如`...
此外,BeanUtils还支持对集合类型的属性进行操作。当JavaBean对象中包含List或Map等集合属性时,可以使用`populate()`方法将Map对象中的键值对填充到JavaBean对象中,实现了将复杂数据结构转换为JavaBean的过程。 ...
4. **集合操作**:库还支持对JavaBean中集合属性的操作,如数组、列表或映射。可以一次性设置或获取整个集合属性,这在处理复杂的对象结构时非常有用。 5. **拷贝属性**:BeanUtils提供了`copyProperties()`方法,...