BeanUtils中DateConverter does not support default String to ‘Date‘ 以及使用sql.date和util.date區別
阿新 • • 發佈:2021-01-27
技術標籤:JAVA筆記javasqlbeanutilsmysql資料庫
BeanUtils
BeanUtils是Apache commens元件裡面的成員,由Apache提供的一套開源api,用於簡化對javaBean的操作,能夠對基本型別自動轉換。
當javaBean中出現非基本型別資料的私有化屬性,並且需要對該資料進行封裝時,就要去註冊該資料型別的型別轉換器了,不然就會出現錯誤,比如物件中存在日期(date)型別。
日期型別轉換出錯:org.apache.commons.beanutils.converters.DateConverter toDate 警告: DateConverter does not support default String to ‘Date’ conversion,可以看出工具類converters在轉換的時候出現了錯誤
BeanUtils中的converter是一個介面,有很多的實現類,我們可以使用裡面的實現類來做日期型別的轉換或者說我們可以自己去註冊個型別轉換器。
使用sql.date不報錯,但是使用util.date報錯的原因:
sql.date的格式是:yyyy-MM-dd
util.date的格式是:yyy-MM-dd HH:mm:ss
頁面中使用<input type="date">
,request拿到該輸入框的值的型別為string型別,格式為yyyy-MM-dd,因此可以對應sql.date的型別,但是無法匹配對應util.date的型別,所以sql.date不會報錯,util.date會報錯。
建議使用如下程式碼實現日期型別的轉換:
DateConverter converter = new DateConverter();
converter.setPattern(new String("yyyy-MM-dd"));
ConvertUtils.register(converter,Date.class);
直接插入上述的程式碼即可: