[java]
view plaincopy
- * java.lang.BigDecimal
- * java.lang.BigInteger
- * boolean and java.lang.Boolean
- * byte and java.lang.Byte
- * char and java.lang.Character
- * java.lang.Class
- * double and java.lang.Double
- * float and java.lang.Float
- * int and java.lang.Integer
- * long and java.lang.Long
- * short and java.lang.Short
- * java.lang.String
- * java.sql.Date
- * java.sql.Time
- * java.sql.Timestamp
所以,处理方式有2种,第一是将bean中的Date类型,引入Java.sql.Date的包;第二种,就需要自己注册一个转换器。
源码里有提供DateLocaleConverter
这个类做注册的转化器,
[java]
view plaincopy
- ConvertUtils.register(new DateLocaleConverter(), Date.class);
当然,这里也能自己实现,
[java]
view plaincopy
- ConvertUtils.register(new Converter()
- {
- @SuppressWarnings("rawtypes")
- @Override
- public Object convert(Class arg0, Object arg1)
- {
- System.out.println("注册字符串转换为date类型转换器");
- if(arg1 == null)
- {
- return null;
- }
- if(!(arg1 instanceof String))
- {
- throw new ConversionException("只支持字符串转换 !");
- }
- String str = (String)arg1;
- if(str.trim().equals(""))
- {
- return null;
- }
- SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- try{
- return sd.parse(str);
- }
- catch(ParseException e)
- {
- throw new RuntimeException(e);
- }
- }
- }, java.util.Date.class);
现实环境中,工具类方法例子为:
[java]
view plaincopy
- public static void transMap2Bean(Map<String, Object> map, Object obj) {
- //ConvertUtils.register(new DateLocaleConverter(), Date.class);
- ConvertUtils.register(new Converter()
- {
- @SuppressWarnings("rawtypes")
- @Override
- public Object convert(Class arg0, Object arg1)
- {
- System.out.println("注册字符串转换为date类型转换器");
- if(arg1 == null)
- {
- return null;
- }
- if(!(arg1 instanceof String))
- {
- throw new ConversionException("只支持字符串转换 !");
- }
- String str = (String)arg1;
- if(str.trim().equals(""))
- {
- return null;
- }
- SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- try{
- return sd.parse(str);
- }
- catch(ParseException e)
- {
- throw new RuntimeException(e);
- }
- }
- }, java.util.Date.class);
- if (map == null || obj == null) {
- return;
- }
- try {
- BeanUtils.populate(obj, map);
- } catch (Exception e) {
- System.out.println("Map<String,Object>转化Bean异常:" + e);
- }
- }
-
顶
- 0
-
踩
- 0