2012-10-04 74 views
4

我有用Java編寫的Web應用程序。我使用BeanUtils.copyProperties方法。如果date字段爲空,則會引發錯誤。我通過使用ConvertUtils.register方法解決了這個問題。BeanUtils複製屬性:註冊ConvertUtils

ConvertUtils.register(new DateConverter(null), Date.class); 

它現在有效,但是使用ConvertUtils.register的正確方法是什麼。它應該放在哪裏?

回答

4

你所做的只是正確只有一個類(日期)類型。這是通過調用register方法爲所有受支持的類型包括日期所取得的ConvertUtilsBean如下:

ConvertUtilsBean convertUtilsBean = BeanUtilsBean.getInstance().getConvertUtils(); 
    convertUtilsBean.register(false, true, -1); 

這裏,第一個參數false手段不亂扔轉換異常。第二個參數true表示如果有例外,則使用null作爲默認值。第三個參數-1表示數組類型將默認爲null。如果你想默認具有特定大小的數組,請將大小作爲第三個參數。

查看更多詳情here (ConvertUtilsBean Javadoc)

+0

每個請求,這應該被稱爲? –

+0

當你在你的例子中調用'register'方法時,執行'ConvertUtilsBean.getInstance()''.register(converter,clazz)''代碼\t。由於ConvertUtilsBean被檢索爲靜態引用(僞單例),因此每個類加載器線程只調用一次「register」就足夠了。 –

+0

你有建議,以防止在Web應用程序中多次調用它? –