前提・実現したいこと
Spring bootを使用してEmailをDBに登録する処理を作成中です。
Emailを入力するテキストフィールドが10個存在し、同時に10個登録を可能にする想定です。
バリデーションチェック実装中に分からないことができたので、質問させていただきます。
発生している問題・エラーメッセージ
@Emailアノテーションを利用し、バリデーションチェックに引っかかった場合、messages.propertisというファイルを参照して項目名とメッセージをひろってきています。
今困っているのは、リストに対してバリデーションチェックをかけた場合の挙動についてです。
該当のソースコード
ファイル名:ListDto.java private List<@Email(message="validate.email" String> email;
という形でアノテーションを仕込むことで、要素1つ1つにバリデーションチェックをかけ、
ファイル名:messages.properties data.email=メールアドレス data.email[0]=メールアドレス(1番目) data.email[1]=メールアドレス(2番目) data.email[2]=メールアドレス(3番目) data.email[3]=メールアドレス(4番目) data.email[4]=メールアドレス(5番目) data.email[5]=メールアドレス(6番目) data.email[6]=メールアドレス(7番目) data.email[7]=メールアドレス(8番目) data.email[8]=メールアドレス(9番目) data.email[9]=メールアドレス(10番目) validate.email=メールアドレスの形式が間違っています。
というプロパティファイルを参照し、何個目のテキストフィールドで引っかかっているかを確認しています。
問題なくクライアント側にエラーメッセージを返せており、2個目のフィールド(リスト上だと[1])でエラーが出ている場合は、
メールアドレス(2番目):メールアドレスの形式が間違っています。
という正しい表示が確認できます。複数でエラーが出ている場合も同様に表示されるのですが、
メールアドレス(3番目):メールアドレスの形式が間違っています。 メールアドレス(1番目):メールアドレスの形式が間違っています。 メールアドレス(5番目):メールアドレスの形式が間違っています。
など、順番が正しく並んでくれません。
これを1番目からきれいに並べたいのですが、何か良い方法はございますでしょうか。
また、プロパティファイルに要素数分の記載をするのはあまりきれいとは思えないので、
こちらも改善策があればご教授いただきたいです。
よろしくお願いいたします。
補足情報(FW/ツールのバージョンなど)
java 11, spring boot 2.3.0
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。