親バカエンジニアのナレッジ帳

webのエンジニアをやっており、日頃の開発で詰まったことや書き残しておきたいことを載せています。

Spring BootでBean Validation (2) エラーメッセージの多言語化


まずは

ti-tomo-knowledge.hatenablog.com

を参考にしてmessage.propertiesを使って多言語化する流れを見てほしいです。
これを使えばバリデーション時のエラーメッセージの対応もすぐできます。

Bean Validation のアノテーションは、通常messageというパラメータを渡せるようになっています。
※もし自作のアノテーションクラスを作った場合は、message()というメンバ関数の定義を忘れないようにしてください。

例えば@NotEmptyの制約に反した場合に日本語のメッセージを表示させたい場合、
まずは

message_ja.propertiesに

must_input=必ず入力してください

と設定し、

@NotEmpty(message = "{must_input}")

とすれば、未入力だった場合に「必ず入力してください」とエラー表示されます。
とても簡単ですね。

ちなみにこのようにダブルコーテーションで変数を囲っている場合、
IDEによっては「unused properties」のような使われていない変数と見なされてしまう場合があります。
それが気になる場合はIDEの設定を変えてしまうしかないかと思います。
ちゃんと使ってるのに...ちょっと不便ですね。