BeanUtils的populate方法或者getProperty,setProperty方法其實都會調用convert進行轉換
但Converter只支持一些基本的類型,甚至連Java.util.Date類型也不支持。而且它比較笨的一個地方是當遇到不認識的類型時,居然會拋出異常來。
對於Date類型,我參考它的sqldate類型實現了一個Converter,而且添加了一個設置日期格式的函數。
ConvertUtils.register(new DateConvert(), java.util.Date.class);
特別是在web項目中,如果沒有注冊日期的話,formbean中將不支持java.util.Date類型,並拋出異常。就是注冊一下就可以用了!
例如:
convertUtils.register(new DateConverter(), Date.class);
convertUtils.register(new BooleanConverter(null), Boolean.class);
convertUtils.register(new LongConverter(null), Long.class);
convertUtils.register(new IntegerConverter(null), Integer.class);
convertUtils.register(new DoubleConverter(null), Double.class);
//進行beans拷貝,時間出現了空值而無法進行復制
//要解決這個問題可以在以上代碼執行前添加以下的代碼
BeanUtils.copyProperties(article, approval);
ConversionException: No value specified for Date的解決方法
org.apache.commons.beanutils.ConversionException: No value specified for 'Date'
