ソースを参照

矫正转换逻辑

吴学文 6 年 前
コミット
fc7eddca0e

+ 1 - 9
java110-common/src/main/java/com/java110/common/util/BeanConvertUtil.java

@@ -50,15 +50,7 @@ public final class BeanConvertUtil {
             }
         }, Date.class);
 
-        ConvertUtils.register(new Converter() { //注册一个日期转换器
-
-            public Object convert(Class type, Object value) {
-                if (value instanceof Date) {
-                    return DateUtil.getFormatTimeString((Date) value, DateUtil.DATE_FORMATE_STRING_A);
-                }
-                return String.valueOf(value);
-            }
-        }, String.class);
+        ConvertUtils.register(new Java110StringConvert(), String.class);
     }
 
 

+ 54 - 0
java110-common/src/main/java/com/java110/common/util/Java110StringConvert.java

@@ -0,0 +1,54 @@
+package com.java110.common.util;
+
+import org.apache.commons.beanutils.converters.AbstractConverter;
+
+import java.util.Date;
+
+/**
+ * 自定义 String 处理
+ */
+public class Java110StringConvert extends AbstractConverter {
+
+
+    /**
+     * Construct a <b>java.lang.String</b> <i>Converter</i> that throws
+     * a <code>ConversionException</code> if an error occurs.
+     */
+    public Java110StringConvert() {
+        super();
+    }
+
+    /**
+     * Construct a <b>java.lang.String</b> <i>Converter</i> that returns
+     * a default value if an error occurs.
+     *
+     * @param defaultValue The default value to be returned
+     * if the value to be converted is missing or an error
+     * occurs converting the value.
+     */
+    public Java110StringConvert(Object defaultValue) {
+        super(defaultValue);
+    }
+
+    @Override
+    protected String convertToString(Object value) throws Throwable {
+        if (value instanceof Date) {
+            return DateUtil.getFormatTimeString((Date) value, DateUtil.DATE_FORMATE_STRING_A);
+        }
+        return super.convertToString(value);
+    }
+
+    @Override
+    protected Object convertToType(Class type, Object value) throws Throwable {
+        //System.out.printf("12313");
+        if (value instanceof Date) {
+            return DateUtil.getFormatTimeString((Date) value, DateUtil.DATE_FORMATE_STRING_A);
+        }
+        return value.toString();
+    }
+
+    @Override
+    protected Class getDefaultType() {
+        return String.class;
+    }
+}

+ 1 - 0
java110-common/src/test/java/com/java110/common/util/BeanConvertUtilTest.java

@@ -44,6 +44,7 @@ public class BeanConvertUtilTest extends TestCase {
     public void testCoverBeanDateToString(){
         FeeDto feeDto = new FeeDto();
         feeDto.setStartTime(new Date());
+        feeDto.setAmount("1.00");
 
         ApiFeeVo apiFeeVo = BeanConvertUtil.covertBean(feeDto, ApiFeeVo.class);