- 浏览: 1441403 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (409)
- Java (48)
- Spring (29)
- struts2 (17)
- hibernate (4)
- 设计模式 (24)
- jbpm (1)
- JavaScript (5)
- 统计报表 (7)
- ExtJS_3.0 (35)
- struts1 (1)
- 分析设计 (3)
- Flex3 (24)
- UML (2)
- 数据库 (18)
- PowerDesigner (2)
- 应用服务器 (3)
- WebService (5)
- ActiveMQ_5.3.2 (6)
- Java通信技术 (11)
- GWT (6)
- OSGi (15)
- android (11)
- liferay6.0.6 (13)
- jquery (13)
- Linux (3)
- java.util.concurrent (16)
- guava (9)
- 开发模式 (1)
- 大数据 (2)
- 互联网金融 (4)
- treegrid-3.0 (7)
- 分布式 (8)
- GO语言 (4)
- maven (1)
- 缓存技术 (6)
- 其他 (2)
- 前端页面 (1)
- heasy (1)
- spring cloud(F版) (21)
- springboot (12)
- springmvc (5)
- mybatis (3)
- dubbo (1)
- 物联网 (0)
最新评论
-
raymond.chen:
谢谢您的分享
使用Ngrok解决通过外网访问内网web应用 -
wangyudong:
速度有点慢,不过在也找到了一个开源的holer,配置一个key ...
使用Ngrok解决通过外网访问内网web应用 -
a1006458222:
...
Axis2的部署和应用 -
偷师来了:
不好意思 这样的博客我觉得就灭有必要分享出来了 命令大家都会看 ...
Consul框架介绍 -
lliiqiang:
怎么直接删除文件夹啊?固定的几个文件可以删除,不固定的呢?需要 ...
Flex AIR —— 文件读写
在使用BeanUtils的populate方法或者getProperty、setProperty方法时都会调用convert进行转换,但Converter只支持一些基本的类型,对于日期类型却不支持。如果源目标中包含日期类型字段,而且该字段值为空时,就会出现异常,无法赋值,解决方法如下:
1、新建一个转换器类,该类实现Converter接口,在convert方法中实现日期类型值的转换逻辑
public class DateConverter implements Converter{ public Object convert(Class type, Object value){ if(value == null){ return null; }else if(type == Timestamp.class){ return convertToDate(type, value, "yyyy-MM-dd HH:mm:ss"); }else if(type == Date.class){ return convertToDate(type, value, "yyyy-MM-dd"); }else if(type == String.class){ return convertToString(type, value); } throw new ConversionException("不能转换 " + value.getClass().getName() + " 为 " + type.getName()); } protected Object convertToDate(Class type, Object value, String pattern) { SimpleDateFormat sdf = new SimpleDateFormat(pattern); if(value instanceof String){ try{ if(CommonUtils.isEmpty(value.toString())){ return null; } Date date = sdf.parse((String) value); if(type.equals(Timestamp.class)){ return new Timestamp(date.getTime()); } return date; }catch(Exception pe){ return null; } }else if(value instanceof Date){ return value; } throw new ConversionException("不能转换 " + value.getClass().getName() + " 为 " + type.getName()); } protected Object convertToString(Class type, Object value) { if(value instanceof Date){ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); if (value instanceof Timestamp) { sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); } try{ return sdf.format(value); }catch(Exception e){ throw new ConversionException("日期转换为字符串时出错!"); } }else{ return value.toString(); } } }
2、注册BeanUtils转换器
ConvertUtils.register(new DateConverter(), java.util.Date.class);
发表评论
-
keytool的使用
2019-08-28 15:12 507keytool是密钥和数字证书的管理工具。它使用户能够管理 ... -
Bitset数据结构的使用
2019-03-08 13:53 1889Bitset是Java中的一种数据结构。Bitset中主要 ... -
Disruptor:高性能低延迟的内存有界队列框架
2019-02-24 10:45 958Disruptor是用于在多个线程之间通信的高性能低延时的 ... -
java的类加载机制
2019-02-18 21:37 390ClassLoader的双亲委派模 ... -
ThreadLocal的使用范例
2019-02-16 19:30 529ThreadLocal用于保存某个线程的共享变量。 Thr ... -
反射工具包Reflections的使用
2019-02-16 17:51 3074Reflections 通过扫描 classpath,索引元 ... -
使用CGLIB对实现类进行动态代理
2019-01-31 19:12 2426CGLIB(Code Generation Library ... -
基于JDK动态代理实现Mybatis的Mapper功能
2019-01-31 18:40 918Mybatis通过定义Mapper接口类,类中的方法与map ... -
Java8新特性
2019-01-20 22:04 5331、Lambda表达式 ... -
使用百度API识别图片文字
2018-09-21 22:41 24991、注册百度账号 https://login.bce.b ... -
HanLP自然语言处理包的使用
2018-09-16 23:06 3098HanLP是由一系列模型与算法组成的Java工具包,目标是 ... -
org.apache.commons常用类的使用
2018-09-14 23:29 819/** * 文本相似度计算 */ ... -
图片转换为单色
2017-04-01 00:10 1457/** * 转为单色图片 */ privat ... -
Java事件机制范例
2016-11-28 15:22 2491java事件机制的参与者: event object:事件 ... -
编程方式的quartz2例子
2016-11-09 14:53 676Job类: public class MyJob imp ... -
数字证书格式
2016-11-06 20:44 1965PFX 或 P12 指以pkcs#12 ... -
Drools6使用范例
2016-10-15 23:50 28051、创建kmodule.xml文件 在s ... -
生成带logo的二维码图片
2016-05-25 18:21 1371源码如下: private static final in ... -
用HttpClient访问CXF的RESTful接口
2016-05-18 16:50 4445用CXF可以开发RESTful服务,服务接口的输入和输出支持 ... -
commons-configuration使用范例
2016-05-02 23:50 15441、访问属性文件 PropertiesConfigurat ...
相关推荐
为了避免这种情况,可以使用`NullHandler`或`DefaultHandler`来处理空值,它们会在遇到null值时返回默认值或不做任何操作。 5. **自定义转换**:如果内置的类型转换不能满足需求,可以通过实现`PropertyEditor`接口...
如果属性类型不匹配,可以实现`org.apache.commons.beanutils.Converter`接口,然后通过`registerConverter()`方法注册,使BeanUtils在遇到这种类型转换时使用自定义的转换逻辑。 总之,虽然BeanUtils在处理...
6. **异常处理**:在处理过程中遇到的异常,如无法找到setter或getter方法,BeanUtils会抛出一个`PropertyUtilsException`,方便开发者进行异常处理。 7. **自定义转换器**:用户可以通过实现`Converter`接口来自...
- 如果属性名不完全匹配或者类型转换失败,BeanUtils会抛出异常,因此需要确保对象属性名的正确性和类型的一致性。 - 为了提高性能,可以使用BeanUtils.copyProperties()的重载方法,指定只复制部分属性。 五、...
4. **空值处理(Null Handling)**:当尝试设置null值时,BeanUtils会根据具体配置决定是否抛出异常,或者如何优雅地处理这种状况。 5. **国际化支持(Internationalization Support)**:BeanUtils可以与...
4. **异常处理**:BeanUtils在执行过程中,如果遇到无法处理的情况(如找不到对应的setter或getter方法),会抛出`InvocationTargetException`。这有助于我们在程序中捕获并处理这些异常。 5. **依赖注入**:虽然...
5. **异常处理**:BeanUtils库在遇到错误时,通常会抛出`PropertyVetoException`、`IllegalAccessException`、`InvocationTargetException`等异常,这有助于开发者追踪和调试代码。 6. **国际化支持**:虽然1.8.0...
本教程将探讨如何使用Servlet实现用户注册和登录功能,以及如何解决注册时可能出现的乱码问题,并利用Apache的BeanUtils库简化Java Bean的操作。 首先,让我们深入理解Servlet的工作原理。Servlet是Java类,遵循...
4. **类型匹配:** BeanUtils在进行属性复制时,如果源属性类型与目标属性类型不一致,会尝试自动转换。但在某些情况下,这种转换可能会失败,需要预先进行类型检查。 5. **版本兼容性:** 不同版本的BeanUtils可能...
6. **异常处理**:BeanUtils在处理过程中遇到问题时,会抛出特定的异常,如`ConvertException`,这有助于调试和定位问题。 源码分析可以从以下几个方面入手: 1. **阅读源码结构**:首先了解项目的目录结构,包括...
4. **空值处理**:BeanUtils提供了对空值的处理,当尝试设置一个null值到对象的属性时,它会自动跳过,避免引发`NullPointerException`。 5. **集合操作**:BeanUtils还支持对集合类的操作,如列表和数组,可以方便...
在属性设置过程中,BeanUtils会自动进行类型转换。例如,如果属性期望的是一个整型值,而传递的是一个字符串,它会尝试将字符串转换为整型。然而,如果转换失败,它会抛出异常,因此在使用时需要注意处理这类异常。...
- 使用BeanUtils时需注意处理可能抛出的`IllegalAccessException`、`InvocationTargetException`和`NoSuchMethodException`等异常。 - 自定义类型转换器时,需确保转换过程的健壮性和兼容性。 - 在进行对象复制时...
然而,需要注意的是,BeanUtils使用反射进行操作,可能会带来安全风险,因为它不进行任何类型检查。如果属性类型不匹配,可能会抛出`InvocationTargetException`。因此,使用时应确保属性类型的一致性,并对可能出现...
在上述代码中,BeanUtils会自动将Map中的"name"和"age"键对应的值分别设置到myBean对象的name和age属性上。需要注意的是,`populate()`方法依赖于属性名的精确匹配,因此Map的键应与JavaBean的属性名保持一致,大小...
3. **空值处理**:在处理Java Bean时,BeanUtils会自动处理null值,避免因为空值引发的异常。例如,在复制属性时,如果源对象的某个属性为空,BeanUtils会忽略该属性,不会影响目标对象的其他属性。 4. **反射支持*...
6. **异常处理**:BeanUtils在遇到错误时,如属性不存在或类型转换失败,会抛出适当的异常,便于开发者调试和处理。 7. **依赖注入**:虽然不如Spring等框架那样强大,但BeanUtils也提供了一种简单的方式来进行依赖...
例如,当源对象和目标对象的属性类型不完全匹配时,BeanUtils会尝试使用ConversionService进行类型转换。 在使用BeanUtils时,需要注意一些潜在的问题。首先,由于BeanUtils是通过反射机制来操作对象的属性,所以...
- **类型转换**:BeanUtils具备自动类型转换的能力,当设置的属性值类型与属性期望类型不匹配时,会尝试进行类型转换。 - **对象拷贝**:`copyProperties()`方法用于将一个对象的所有属性值复制到另一个对象,极大...
在进行属性复制时,如果源对象的某个属性值为空,BeanUtils会自动跳过,避免因为空值引发异常。同时,它还提供了自定义转换器的功能,通过实现Converter接口,可以自定义类型转换规则,处理不同类型间的转换问题。 ...