@valid WHERE/どのようにカスタムエラーメッセージを使用したスプリング検証
-
28-09-2019 - |
質問
プロパティファイルのエラーメッセージを使用して、スプリング検証を実行しようとしています。しかし、私が見つけた例はすべて、値がハードコードされているか、プロパティファイルから得られたが、Validatorクラスを使用してそこで取得しているようです。
私のセットアップは少し違っています。私はリクエストマッピングで@validアノテーションを使用しており、@validクラスは@notnullなどを使用しています。@notnull(message = "blablabla")を使用する例を見てきました。しかし、それもハードコードされているので、メッセージをプロパティファイルに配置して、簡単に編集できるようにして、将来i18nを簡単に実装できるようにしたいと思います。
これを達成する方法に関する入力は大歓迎です。
解決
明示的なものとまったく同じように機能します Validator
- 君 宣言a 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>
所属していません StackOverflow