весенний форматировщик потока для LocalDate - PullRequest
0 голосов
/ 31 марта 2020

В веб-приложении MVC я использую

  • пружинный башмак 2.2.4.RELEASE
  • пружинный веб-поток 2.5.1.RELEASE

У меня есть простой ввод, где я заполняю дату:

<input id="dateEtat" type="text" th:field="*{etatSaisi.date}" />

мой тип на бобе LocalDate:

@DateTimeFormat (pattern="dd/MM/YYYY")
private LocalDate date;

когда я отправляю форму, @DateTimeFormat не конвертирует данные (но, как упоминалось здесь, это нормально, поскольку они должны обрабатывать только JodaTime дата в лучшем случае)

Я хотел зарегистрировать специальный форматер LocalDat, как описано здесь

Мой форматер

public class WebMvcConfig implements WebMvcConfigurer {

...

    public Formatter<LocalDate> dateFormatter() {
        return new Formatter<LocalDate>() {

            private final DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/yyyy");

            @Override
            public LocalDate parse(String text, Locale locale) throws ParseException {
                return LocalDate.parse(text, formatter);
            }

            @Override
            public String print(LocalDate date, Locale locale) {
                return date.format(formatter);
            }
        };
    }

    @Override
    public void addFormatters(FormatterRegistry registry) {
        registry.addFormatter(dateFormatter());
    }

...

, а затем я должен установить соответствующее значение для моего построителя веб-потоков, НО installFormatters больше не существует:

public class ApplicationConversionServiceFactoryBean extends FormattingConversionServiceFactoryBean {

    @Override
    protected void installFormatters(FormatterRegistry registry) {
        // ...
    }

}

Так что я должен установить здесь в своей конфигурации веб-потока (.setConversionService(?)), чтобы он соответствовал моему конвертеру весенней загрузки?:

@Bean
    public FlowBuilderServices flowBuilderServices() {
        return getFlowBuilderServicesBuilder()
                .setViewFactoryCreator(mvcViewFactoryCreator())
                .setValidator(validator())
                .setDevelopmentMode(true)
                .setConversionService(?)
                .build();
    }
...