Создание getAsText () с датой в PropertyEditorSupport и @Initbinder - PullRequest
1 голос
/ 03 октября 2019

Мне нужно преобразовать дату с шаблоном "гггг-ММ-дд" в формат строки "дд.мм.гггг". Теперь у меня есть это. Метод getAsText () не работает, а setAsText работает. Что я делаю не так?

DateEditor.java

@Component
public class DateEditor extends PropertyEditorSupport {

    @Override
    public void setAsText(String value) {
        try {
            setValue(new SimpleDateFormat("yyyy-MM-dd").parse(value));
        } catch (Exception ex) {
            setValue(null);
        }
    }

     @Override
    public String getAsText() {

        String sdf = "";

        try {
            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");

            dateFormat.setLenient(true);//-

            Date date = dateFormat.parse((String) getValue());
            sdf = new SimpleDateFormat("dd.MM.yyyy").format(date);

            System.out.println(sdf);
        } catch (ParseException p) {}

        return sdf;
    }

}

Инициатор

@InitBinder
    public void initBinder(WebDataBinder dataBinder) {
         dataBinder.registerCustomEditor(Date.class,new DateEditor());
}
...