Весной, после проверки мы получаем BindingResult
объект в controller
.
Достаточно просто, если я получаю ошибки проверки, я хочу повторно отображать свою форму с сообщением об ошибке над каждым пострадавшимfield.
Таким образом, чтобы проверить наличие ошибок поля в поле username
моего FormObject
, я звоню:
FieldError usernameFieldError = bindingResult.getFieldError("username");
Отлично, теперь я держу объект FieldError
, который, если яЯ использую DefaultMessageCodeResolver
теперь содержит что-то вроде 4 возможных кодов ошибок.
Как перейти от FieldError
-> Строка, которая может быть использована пользователем?
У меня есть MessageSource
, определенный в контексте моего веб-приложения, поэтому я могу сопоставить один код ошибки с сообщением.
Но иногда сообщение по умолчанию будет лучшим, а иногда я ожидаю, что два изКоды ошибок могут содержать соответствующее сообщение, поэтому нам нужно выбрать лучший.
Какой метод я использую, чтобы определить best возможное сообщение об ошибке, которое нужно представить для ошибки поля?
- Нужно ли написать какой-нибудь алгоритм для прохождениявсе коды ошибок и выбрать из наиболее конкретных?
- Предоставляет ли Spring какую-либо поддержку для определения наиболее конкретного сообщения об ошибке?
- Весь этот процесс кажется настолько длинным и запутанным, я думал, что Spring былдолжен сделать это легко.Может, я как-то совершенно не в курсе?