Весенняя проверка с @Valid, где / Как пользовательские сообщения об ошибках
-
28-09-2019 - |
Вопрос
Я пытаюсь сделать некоторую вешеную проверку с сообщениями об ошибках в файлах свойств. Но примеры, которые я считаю, что все, кажется, имеют значения жесткозедированных или полученные из файла свойств, но используя класс валидатора и извлеките его там.
Моя установка немного отличается. Я использую аннотацию @Valid в моей запросе, и мой класс @Valid использует @notnull и т. Д. Я видел некоторые примеры, где люди делают @notnull (Message = "Blablabla"); Но это также хардкодируется, и я хотел бы поставить сообщения в файл свойств, чтобы я мог легко редактировать его на лету, и поэтому я могу легко реализовать I18N в будущем.
Любой вклад о том, как добиться этого будет оценено.
Решение
Работает точно так же, как и с явным Validator
- ты Объявить А. MessageSource
и запись сообщений об ошибках в .properties
файлы. Коды сообщений формируются как constraintName.modelAttributeName.propertyName
:
publib class Foo {
@NotNull private String name;
...
}
.
@RequestMapping
public String submitFoo(@Valid Foo foo, ...) { ... }
messages.properties
:
NotNull.foo.name=...
MessageSource
Декларация:
<bean id="messageSource"
class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basename" value = "messages" />
</bean>