у меня есть геттер/сеттер для переменной Date
, например, так:Пользовательских Struts преобразователя типа не работает
private Date registrationDate;
@TypeConversion(converter = "org.com.helper.DataHelper")
public Date getRegistrationDate() {
return registrationDate;
}
@TypeConversion(converter = "org.com.helper.DataHelper")
public void setRegistrationDate(Date registrationDate) {
this.registrationDate = registrationDate;
}
Как вы можете видеть, я создал пользовательские struts
конвертер для преобразования входящей строки Date
, а затем назначьте его. Но, похоже, это не работает. Вот код для DateHelper:
public class DateHelper extends StrutsTypeConverter {
private static final DateFormat FORMAT = new SimpleDateFormat("dd-MM-yyyy");
@Override
public Object convertFromString(Map arg0, String[] values, Class arg2) {
try {
System.out.println(values[0]+"called from datahelper");
return FORMAT.parse(values[0]);
} catch (Exception e) {
throw new TypeConversionException(e.getMessage());
}
}
@Override
public String convertToString(Map arg0, Object value) {
try {
return FORMAT.format(value);
} catch (Exception e) {
throw new TypeConversionException(e.getMessage());
}
}
}
Я использую struts2-json
плагин, чтобы получить и проанализировать данные формы. Этот плагин автоматически присваивает все строковые значения, но у меня есть проблема с Date
.
Вот как я получаю данные, переданные Java из формы.
{"data":{"recordId":"123","registrationDate":"20-07-2016","hisId":"","herId":"","lastNameHe":"Asd","firstNameHe":"Asd","middleNameHe":"Asd","workPlaceHe":"","educationHe"}}
Так, согласно моему пониманию кода перед началом установки registrationDate
должен вызывать вспомогательный класс и преобразовать строку в date
, а затем вызвать registrationDate
сеттер .. но это не похоже на работу .. Я даже поместил вызов log
в вспомогательный код, но он не отображается в затмении.
Ой, я вижу ... это странно, что ОП является сначала заметив это, затем :) Хорошо Q & A –
@AndreaLigios Да, json плагин должен быть действительно реорганизован. –
говорится: «JSON не может быть разрешен для типа», и для меня нет доступных библиотек для импорта. Он предлагает использовать jacksonview .. – Daler