Как переформатировать аннотированную дату в Spring MVC, если проверка не удалась? - PullRequest
0 голосов
/ 25 января 2011

У меня есть приложение Spring-MVC, которое отображает форму, основанную на компоненте. Боб имеет поле даты, помеченное этим:

@DateTimeFormat(iso=ISO.DATE_TIME)

Это работает как ожидалось; дата отображается в этом формате. Между тем, другие поля в bean-компоненте проверяются с использованием аннотаций проверки JPA. Когда пользователь отправляет форму, у меня зарегистрирован пользовательский конвертер данных, чтобы преобразовать входящую строку в дату, которая, кажется, работает нормально.

Таким образом, проблема возникает, когда пользователь отправляет форму, и проверка не проходит в одном из других полей. Когда ошибка проверки отправляет пользователя обратно на страницу ввода формы, формат даты изменился до того, который вы ожидаете после вызова toString () для объекта даты.

Есть ли способ повторно вызвать аннотацию DateTimeFormat для объекта перед его отправкой обратно в форму?

1 Ответ

3 голосов
/ 25 января 2011

Что-то не так с вашей настройкой, вам не нужен специальный конвертер данных для преобразования String в Date. Если все настроено нормально, @DateTimeFormat контролирует преобразование данных во всех случаях, как входящих, так и исходящих.

Убедитесь, что у вас есть <mvc:annotation-driven /> и не переопределяете конвертеры по умолчанию.

Взгляните на образцы, такие как mvc-витрина .

...