天天看點

BeanUtils中DateConverter does not support default String to ‘Date‘ 以及使用sql.date和util.date差別

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);
           

直接插入上述的代碼即可:

BeanUtils中DateConverter does not support default String to ‘Date‘ 以及使用sql.date和util.date差別