Как указать пользовательское сообщение об ошибке проверки в SimpleDateFormat с помощью Spring MVC

В моем приложении Smpring MVC я проверяю даты, используя SimpleDateFormat в качестве пользовательского редактора в WebDataBinder. Когда введенная дата не соответствует требуемому шаблону, я получаю необработанное сообщение об ошибке в моей форме: тег ошибки как:

Failed to convert property value of type java.lang.String to required type java.util.Date for property hireDate; nested exception is java.lang.IllegalArgumentException: Could not parse date: Unparseable date: "432345"

Моя проблема заключается в том, что я хочу отобразить на странице JSP пользовательское сообщение об ошибке что-то вроде:

"Дата рождения должна соответствовать шаблону" дд / мм / гггг ""

Вот код моего @InitBinder:

@InitBinder
protected void initBinder(WebDataBinder binder) {
    SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
    binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, false));
}

Благодарю.

2 ответа

Решение

Попробуйте зарегистрировать следующее сообщение в вашем комплекте сообщений:

typeMismatch.command.field=Date of birth must match "dd/MM/yyyy" pattern
or
typeMismatch.field = ...

замените команду и поле соответствующим объектом команды

Более подробная информация здесь: http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/validation/DefaultMessageCodesResolver.html

Это может быть не то, что вы ищете, но в наших командах мы используем строки для (почти) всех наших атрибутов.

Затем мы выполняем проверку этих строк, чтобы определить, станут ли они типом данных, на который мы надеемся получить доступ к команде.

Другие вопросы по тегам