Как конвертировать дату в BeanWrapperFieldSetMapper
Прочтите следующее пакетное задание Spring, оно считывает данные из «domain.csv» и сопоставляет их с объектом домена.
job-example.xml
domain.csv
1,facebook.com,Mon Jul 15 16:32:21 MYT 2013 2,google.com,Mon Jul 15 16:32:21 MYT 2013 3,youtube.com,Mon Jul 15 16:32:21 MYT 2013 4,yahoo.com,Mon Jul 15 16:32:21 MYT 2013 5,amazon.com,Mon Jul 15 16:32:21 MYT 2013
Domain.java
import java.util.Date; public class DomainRanking { private int id; private String domainName; private Date lastModifiedDate; //... }
проблема
Проблема в том, как отобразить / преобразовать String DateMon Jul 15 16:32:21 MYT 2013
вjava.util.Date
? При запуске над заданием появятся следующие сообщения об ошибках:
Cannot convert value of type [java.lang.String] to required type [java.util.Date] for property 'lastModifiedDate': no matching editors or conversion strategy found
Решение
Обратитесь кBeanWrapperFieldSetMapper JavaDoc:
Чтобы настроить способ преобразования значений FieldSet в требуемый тип для внедрения в прототип, существует несколько вариантов. Вы можете внедрить экземпляры PropertyEditor напрямую через свойство customEditors…
Чтобы исправить это, объявляетCustomDateEditor
и вводит вBeanWrapperFieldSetMapper
через свойствоcustomEditors
.
job-example.xml
P.S The String Date “Mon Jul 15 16:32:21 MYT 2013” is represented by “EEE MMM dd HH:mm:ss z yyyy”.
Note
Не вводитеCustomDateEditor
черезCustomEditorConfigurer
(глобально), это не сработает.