В веб-приложении 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();
}