У меня есть геттер/сеттер для переменной Date
, например:
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
вызовите вспомогательный код, но он не отображается в eclipse.