SpringBoot入門 vol.12:message.propertiesでエラーメッセージを管理しよう
前章のSpring Boot入門 vol.11:データバインドで画面とフィールドをマッピングしようでバリデーションチェック時のエラーメッセージを表示した
但し、英語のデフォルトメッセージとなっているのでこの章で日本語のエラーメッセージに変換する
尚、エラーメッセージはmessage.propertiesファイルを作成し、そのファイルに記述する
①message.propertiesファイルを作成
格納場所:src/main/resources
②message.propertiesにエラーメッセージを記述
#ポイント1
customerForm.name=名前
#ポイント2
NotBlank.customerForm.name={0}は入力必須です
Size.customerForm.name={0}は{2}文字以上、{1}文字以下で入力してください
customerForm.email=メールアドレス
Size.customerForm.email={0}は{1}文字以下で入力してください
【ポイント】
1.モデルオブジェクトの属性名.フィールド名=表示名
例)customerForm.name=名前
2.アノテーション名.モデルオブジェクトの属性名.フィールド名=エラーメッセージ
{0}はポイント1で設定した表示名となる
例)
NotBlank.customerForm.name={0}は入力必須です
⇒名前は入力必須です
Size.customerForm.name={0}は{2}文字以上、{1}文字以下で入力してください
⇒名前は1文字以上、20文字以下で入力してください
{1}{2}…はパラメーターの昇順で格納される
CustomerFormの「nameフィールド」には下記アノテーションを設定しているので「max」→「min」の順で格納される
【@Size(min = 1, max = 20)】
{1}:20(maxの値)
{2}:1(minの値)
尚、Eclipseでファイルを開く時は下記方法で開かないと文字化けするので注意
・ファイルの開き方
「messages.properties」を右クリック⇒「次で開く」⇒「Limy プロパティー・エディター」
【エラーメッセージを確認】
顧客登録画面で下記内容を入力して登録ボタンを押下
・名前:空欄
・メールアドレス:101文字以上
③メッセージの外国語対応
ブラウザの言語設定でエラーメッセージを切り替える設定
例えば英語の場合は「messages_en.properties」を作成し、内容を記述すればよい
格納先:src/main/resources/messages_en.properties
#ポイント1
customerForm.name=Name
#ポイント2
NotBlank.customerForm.name={0} is required
Size.customerForm.name={0} must be at least {2} and no more than {1} characters
customerForm.email=Email
Size.customerForm.email=Please enter an {0} address of {1} characters or less
【エラーメッセージを確認】
顧客登録画面で下記内容を入力して登録ボタンを押下
※ブラウザの言語設定は英語に変更しておくこと
・名前:空欄
・メールアドレス:101文字以上
エラーメッセージが英語になっていることを確認