весенняя проверка с @valid где / как пользовательские сообщения об ошибках - PullRequest
3 голосов
/ 26 ноября 2010

Я пытаюсь выполнить некоторую весеннюю проверку с помощью сообщений об ошибках в файлах свойств. Но все примеры, которые я нахожу, имеют жестко закодированные значения, полученные из файла свойств, но с использованием класса валидатора и извлечения его там.

Моя настройка немного отличается. Я использую аннотацию @Valid в своем сопоставлении запросов, а мой класс @Valid использует @NotNull и т. Д. Я видел несколько примеров, когда люди делают @NotNull (message = "blablabla"); Но это также жестко запрограммировано, и я хотел бы поместить сообщения в файл свойств, чтобы я мог легко редактировать его на лету и чтобы я мог легко реализовать i18n в будущем.

Буду признателен за любую информацию о том, как этого добиться.

1 Ответ

8 голосов
/ 26 ноября 2010

Он работает точно так же, как и с явным 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...